Ich möchte einen Teil der Zeichenfolge aus einem Zeichen entfernen, dh:
Quellzeichenfolge:
manchester united (with nice players)
Zielzeichenfolge:
manchester united
Ich möchte einen Teil der Zeichenfolge aus einem Zeichen entfernen, dh:
Quellzeichenfolge:
manchester united (with nice players)
Zielzeichenfolge:
manchester united
Antworten:
Es gibt mehrere Möglichkeiten, dies zu tun. Wenn Sie die Zeichenfolge haben, die Sie ersetzen möchten, können Sie die Methoden replaceoder replaceAllder StringKlasse verwenden. Wenn Sie einen Teilstring ersetzen möchten, können Sie den Teilstring über die substringAPI abrufen .
Zum Beispiel
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));
Um Inhalte innerhalb von "()" zu ersetzen, können Sie Folgendes verwenden:
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));
String toBeReplaced = str.substring(startIndex , endIndex + 1);
String ersetzen
String s = "manchester united (with nice players)";
s = s.replace(" (with nice players)", "");
Bearbeiten:
Nach Index
s = s.substring(0, s.indexOf("(") - 1);
s = s.replace(...)
Verwenden Sie String.Replace ():
http://www.daniweb.com/software-development/java/threads/73139
Beispiel:
String original = "manchester united (with nice players)";
String newString = original.replace(" (with nice players)","");
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jsZhSC
replaceFirst()kann durch ersetzt werdenreplaceAll()
Mit StringBuilder können Sie Folgendes ersetzen.
StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
Ich würde zuerst die ursprüngliche Zeichenfolge in ein Array von Zeichenfolgen mit einem Token "(" aufteilen und die Zeichenfolge an Position 0 des Ausgabearrays ist das, was Sie gerne hätten.
String[] output = originalString.split(" (");
String result = output[0];
Sie sollten die substring () -Methode des String-Objekts verwenden.
Hier ist ein Beispielcode:
Annahme: Ich gehe hier davon aus, dass Sie die Zeichenfolge bis zur ersten Klammer abrufen möchten
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);
Verwenden von StringUtils aus Commons lang
Eine Null-Quellzeichenfolge gibt null zurück. Eine leere ("") Quellzeichenfolge gibt die leere Zeichenfolge zurück. Eine Null-Entfernungszeichenfolge gibt die Quellzeichenfolge zurück. Eine leere ("") Entfernungszeichenfolge gibt die Quellzeichenfolge zurück.
String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"
// 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);
}
}
Wenn Sie nur alles nach dem "(" entfernen müssen, versuchen Sie dies. Tut nichts, wenn keine Klammern vorhanden sind.
StringUtils.substringBefore(str, "(");
Wenn nach den Endklammern möglicherweise Inhalt vorhanden ist, versuchen Sie dies.
String toRemove = StringUtils.substringBetween(str, "(", ")");
String result = StringUtils.remove(str, "(" + toRemove + ")");
Verwenden Sie zum Entfernen von Endräumen str.trim()
Apache StringUtils- Funktionen sind null-, leer- und nicht übereinstimmungssicher
Sie könnten verwenden replace, um Ihre Zeichenfolge zu reparieren. Im Folgenden wird alles vor einem "(" zurückgegeben und auch alle führenden und nachfolgenden Leerzeichen entfernt. Wenn die Zeichenfolge mit einem "(" beginnt, wird sie einfach unverändert gelassen.
str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched
Wenn Sie eine bestimmte Zeichenfolge am Ende entfernen, verwenden Sie removeSuffix ( Dokumentation ).
var text = "one(two"
text = text.removeSuffix("(two") // "one"
Wenn das Suffix in der Zeichenfolge nicht vorhanden ist, wird nur das Original zurückgegeben
var text = "one(three"
text = text.removeSuffix("(two") // "one(three"
Wenn Sie nach einem Zeichen entfernen möchten, verwenden Sie
// 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, "")
Sie können auch überprüfen removePrefix, removeRange, removeSurrounding, und replaceAfterLastdie ähnlich
Die vollständige Liste finden Sie hier: ( Dokumentation )