Verwijder een deel van string in Java

Ik wil een deel van de tekenreeks van één teken verwijderen, namelijk:

Brontekenreeks:

manchester united (with nice players)

Doelreeks:

manchester united

Antwoord 1, autoriteit 100%

Er zijn meerdere manieren om dit te doen. Als je de string hebt die je wilt vervangen, kun je de methoden replaceof replaceAllvan de klasse Stringgebruiken. Als u een substring wilt vervangen, kunt u de substring verkrijgen met behulp van de substringAPI.

Bijvoorbeeld

String str = "manchester united (with nice players)";
System.out.println(str.replace("(with nice players)", ""));
int index = str.indexOf("(");
System.out.println(str.substring(0, index));

Om inhoud binnen “()” te vervangen, kunt u het volgende gebruiken:

int startIndex = str.indexOf("(");
int endIndex = str.indexOf(")");
String replacement = "I AM JUST A REPLACEMENT";
String toBeReplaced = str.substring(startIndex + 1, endIndex);
System.out.println(str.replace(toBeReplaced, replacement));

Antwoord 2, autoriteit 20%

Tekenreeks vervangen

String s = "manchester united (with nice players)";
s = s.replace(" (with nice players)", "");

Bewerken:

Op index

s = s.substring(0, s.indexOf("(") - 1);

Antwoord 3, autoriteit 13%

Gebruik string.replace ():

http://www.daniweb.com/software-development/java/ Threads / 73139

Voorbeeld:

String original = "manchester united (with nice players)";
String newString = original.replace(" (with nice players)","");

Antwoord 4, Autoriteit 6%

originalString.replaceFirst("[(].*?[)]", "");

https://ideone.com/jszhsc
replaceFirst()Kan worden vervangen door replaceAll()


Antwoord 5, Autoriteit 4%

Gebruik stringbuilder , u kunt de volgende manier vervangen.

StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");

Antwoord 6, Autoriteit 4%

U moet de substring () methode van string-object gebruiken.

Hier is een voorbeeldcode:

Veronderstelling: ik ga hier ervan uit dat u de tekenreeks wilt ophalen tot de eerste haakjes

String strTest = "manchester united(with nice players)";
/*Get the substring from the original string, with starting index 0, and ending index as position of th first parenthesis - 1 */
String strSub = strTest.subString(0,strTest.getIndex("(")-1);

Antwoord 7, Autoriteit 4%

Ik zou eerst de originele string in een reeks string met een token “(” en de string op positie 0 van de uitgangsarray zijn, is wat u wilt hebben.

String[] output = originalString.split(" (");
String result = output[0];

Antwoord 8

met behulp van snoerdils van Commons Lang

Een nulbronstring retourneert null. Een lege (“”) bronstring retourneert de lege tekenreeks. Een nulverwijderingsstring retourneert de bronstring. Een leeg (“”) Remove String retourneert de bronstring.

String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"

Antwoord 9

// Java program to remove a substring from a string
public class RemoveSubString {
    public static void main(String[] args) {
        String master = "1,2,3,4,5";
        String to_remove="3,";
        String new_string = master.replace(to_remove, "");
        // the above line replaces the t_remove string with blank string in master
        System.out.println(master);
        System.out.println(new_string);
    }
}

Antwoord 10

Als u gewoon alles hoeft te verwijderen na de “(“, probeer dit dan. doet niets als haakjes.

StringUtils.substringBefore(str, "(");

Als er na het einde haakjes inhoud kan zijn, probeer dit dan.

String toRemove = StringUtils.substringBetween(str, "(", ")");
String result = StringUtils.remove(str, "(" + toRemove + ")"); 

Gebruik str.trim()

om eindruimten te verwijderen.

Apache stringutils Functies zijn null-, leeg- en geen match-safe


Antwoord 11

U kunt replaceom uw string te repareren. Het volgende zal alles teruggeven vóór een “(” en ook alle leidende en trailing whitespace strippen. Als de string begint met een “(” het zal het gewoon achterlaten zoals het is.

str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched

Antwoord 12

KOTLIN-oplossing

Als u vanaf het einde een specifieke reeks verwijdert, gebruikt u removeSuffix(documentatie )

var text = "one(two"
text = text.removeSuffix("(two") // "one"

Als het achtervoegsel niet bestaat in de string, retourneert het gewoon het origineel

var text = "one(three"
text = text.removeSuffix("(two") // "one(three"

Gebruik

als u wilt verwijderen na een personage,

// Each results in "one"
text = text.replaceAfter("(", "").dropLast(1) // You should check char is present before `dropLast`
// or
text = text.removeRange(text.indexOf("("), text.length)
// or
text = text.replaceRange(text.indexOf("("), text.length, "")

Je kunt ook removePrefix, removeRange, removeSurroundingen replaceAfterLastdie vergelijkbaar zijn

De volledige lijst is hier:(Documentatie)

Other episodes