Ich habe in SOAP-Nachrichten gearbeitet, um LoginToken vom Webservice abzurufen und das LoginToken in String zu speichern und System.out.println(LoginToken);
zum Drucken zu verwenden. Dies druckt [wdsd34svdf], aber ich möchte nur wdsd34svdf, also wie man eckige Klammern entfernt. Bitte, jemand hilft mir.
Vielen Dank
Beispiel:
String LoginToken=getName().toString();
System.out.println("LoginToken" + LoginToken);
Ausgabe: [wdsd34svdf] Ich möchte wdsd34svdf
Antworten:
Es ist einfach. Sie müssen den Index von [und] und dann den Teilstring finden. (Hier [ist immer am Anfang und] ist am Ende),
String loginToken="[wdsd34svdf]"; System.out.println(loginToken.substring(1, loginToken.length()-1));
quelle
(error.substring(2, error.length()-1))
, um erste und letzte Klammern zu entfernen!Dies ist eine generische Lösung:
str.replaceAll("^.|.$", "")
quelle
Sie können immer verwenden
substring
:String loginToken = getName().toString(); loginToken = loginToken.substring(1, loginToken.length() - 1);
quelle
Eine andere Lösung für dieses Problem ist die Verwendung der
StringUtils.substringBetween(String str, String open, String close)
Methode commons-lang (seit Version 2.0) . Hauptvorteil ist, dass es null sicherer Betrieb ist.StringUtils.substringBetween("[wdsd34svdf]", "[", "]"); // returns wdsd34svdf
quelle
Ich hatte ein ähnliches Szenario und dachte, dass so etwas
str.replaceAll("\[|\]", "");
sah sauberer aus. Wenn Ihr Token Klammern enthält, funktioniert das natürlich nicht.
quelle
das funktioniert einwandfrei
String str = "[wdsd34svdf]"; //String str1 = str.replace("[","").replace("]", ""); String str1 = str.replaceAll("[^a-zA-Z0-9]", ""); System.out.println(str1); String strr = "[wdsd(340) svdf]"; String strr1 = str.replaceAll("[^a-zA-Z0-9]", ""); System.out.println(strr1);
quelle
strr.replaceAll(...)
anstattstr.replaceAll(...)
( str durch strr ersetzen )Auf diese Weise können Sie 1 führendes "[" und 1 nachfolgendes "]" Zeichen entfernen. Wenn Ihre Zeichenfolge nicht mit "[" beginnt oder mit "]" endet, wird nichts entfernt:
str.replaceAll("^\\[|\\]$", "")
quelle
StringUtils
'sremoveStart
undremoveEnd
Methode helfen dabei, Zeichenfolgen vom Anfang und Ende einer Zeichenfolge zu entfernen.In diesem Fall könnten wir auch eine Kombination dieser beiden Methoden verwenden
String string = "[wdsd34svdf]"; System.out.println(StringUtils.removeStart(StringUtils.removeEnd(string, "]"), "["));
quelle
LÖSUNG 1
LÖSUNG 2
quelle
In Kotlin
private fun removeLastChar(str: String?): String? { return if (str == null || str.isEmpty()) str else str.substring(0, str.length - 1) }
quelle
Versuchen Sie dies, um die erste und letzte Klammer der Zeichenfolge zu entfernen, z. B. [1,2,3]
String s =str.replaceAll("[", "").replaceAll("]", "");
Erwartetes Ergebnis = 1,2,3
quelle
Dies gibt Ihnen eine Grundidee
String str=""; String str1=""; Scanner S=new Scanner(System.in); System.out.println("Enter the string"); str=S.nextLine(); int length=str.length(); for(int i=0;i<length;i++) { str1=str.substring(1, length-1); } System.out.println(str1);
quelle