Chcę usunąć część napisu z jednego znaku, czyli:usunięcie części ciąg
oryginalny łańcuch: Manchester United (z miłych graczy)
Future wynik: Manchester United
Chcę usunąć część napisu z jednego znaku, czyli:usunięcie części ciąg
oryginalny łańcuch: Manchester United (z miłych graczy)
Future wynik: Manchester United
Istnieje wiele sposobów, aby to zrobić. Jeśli masz ciąg, który chcesz zastąpić, możesz użyć metod klasy lub replaceAll
. Jeśli chcesz zastąpić podłańcuch, możesz uzyskać podciąg przy użyciu interfejsu API substring
.
Na przykład
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));
Aby zastąpić zawartość wewnątrz "()" można użyć:
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));
jakaś literówka. Powinno być 'String toBeReplaced = str.substring (startIndex, endIndex + 1);' – Yeung
również byłoby warte usunięcia miejsca: System.out.println (str. replace ("(z miłymi graczami)", "")); – kiedysktos
Wykorzystanie string.replace():
http://www.daniweb.com/software-development/java/threads/73139
przykład:
String original = "manchester united (with nice players)";
String newString = original.replace(" (with nice players)","");
Jakiś konkretny powód, dla którego został odrzucony? –
Nie byłem downvoter, ale może dlatego, że umieścić Replace w niewłaściwym przypadku? –
Dzięki Mike. Poprawię. –
String Wymień
String s = "manchester united (with nice players)";
s = s.replace(" (with nice players)", "");
EDIT:
przez indeks
s = s.substring(0, s.indexOf("(") - 1);
nie zapomnij o 's = s.replace (...)' – dasblinkenlight
Zapomniałem tego dzięki. Zaktualizuję. –
Nie może być, ponieważ to, co znajduje się w nawiasach, może się zmienić. Potrzebuję zmienić ciąg znaków od znaku ( – zmki
Należy użyć podciąg() metody obiektu String.
Oto przykładowy kod:
Założenie: Zakładam tutaj, że chcesz odzyskać ciąg do pierwszego nawiasu
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);
chciałbym najpierw podzielić pierwotny ciąg do tablicy String z tokenem „(” a ciąg w pozycji 0 z tablicy wyjściowej jest to, co chcesz mieć.
String[] output = originalString.split(" (");
String result = output[0];
można użyć do replace
napraw twój ciąg. Poniższa wróci wszystko przed „(” a także rozebrać wszystkie początkowe i końcowe spacje. Jeżeli łańcuch zaczyna się od „(” to po prostu zostawić jak jest.
str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched
To nie działa w Javie.Może to być pochodna ECMAscript.Czy masz jakiś sposób, aby ten kod działał tak jak w Javie? – 1111161171159459134
Korzystanie StringBuilder, można wymień w następujący sposób.
StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jsZhSC
replaceFirst()
może być zastąpiony przez replaceAll()
// 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);
}
}
Using StringUtils from commons lang
Źródło ciąg zerowy zwróci wartość null. Pusty łańcuch ("") spowoduje zwrócenie pustego łańcucha. Łańcuch usuwający wartość null zwróci ciąg źródłowy. Pusty łańcuch ("") usuwa łańcuch źródłowy.
String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"
Skąd wiadomo, którą część zachować, a którą odrzucić? Nie wiedząc o tym, nie można odpowiedzieć na twoje pytanie? – Raedwald