webentwicklung-frage-antwort-db.com.de

Wie entferne ich das erste und letzte Zeichen einer Zeichenfolge?

Ich habe in der SOAP - Nachricht gearbeitet, um LoginToken vom Webservice abzurufen, das LoginToken in String zu speichern und System.out.println(LoginToken); zum Drucken zu verwenden. Dies druckt [wdsd34svdf], aber ich möchte nur wdsd34svdf, so wie man eckige Klammern entfernt. bitte helft mir einer.

Vielen Dank

Beispiel:

String LoginToken=getName().toString();
System.out.println("LoginToken" + LoginToken);

Ausgabe: [wdsd34svdf] Ich möchte wdsd34svdf

54
Sampath Kumar

Es ist einfach, Sie müssen den Index von [und] und dann den Teilstring finden. (Hier ist [immer am Anfang und] am Ende),

String loginToken="[wdsd34svdf]";
System.out.println(loginToken.substring(1, loginToken.length()-1));
134
gtiwari333

Sie können immer substring verwenden:

String loginToken = getName().toString();
loginToken = loginToken.substring(1, loginToken.length() - 1);
11
Ted Hopp

Dies ist eine generische Lösung:

str.replaceAll("^.|.$", "")
11
phibao37

Eine andere Lösung für dieses Problem ist die Verwendung der Methode commons-lang (seit Version 2.0) StringUtils.substringBetween(String str, String open, String close). Hauptvorteil ist, dass es null sicherer Betrieb ist.

StringUtils.substringBetween("[wdsd34svdf]", "[", "]"); // returns wdsd34svdf

7
michal.kreuzman

Ich hatte ein ähnliches Szenario, und ich dachte, dass etwas ähnliches 

str.replaceAll("\[|\]", "");

sah sauberer aus. Wenn Ihr Token Klammern enthält, funktioniert das natürlich nicht.

4
V9801

Auf diese Weise können Sie 1 führende "[" und 1 hintere "]" Zeichen entfernen. Wenn Ihre Zeichenfolge nicht mit "[" beginnt oder mit "]" endet, wird nichts entfernt:

str.replaceAll("^\\[|\\]$", "")
0
Andriy Fedotov

Die StringUtils- und removeStart-Methode von removeEnd hilft dabei, Zeichenfolgen vom Anfang und Ende einer Zeichenfolge zu entfernen.

In diesem Fall können wir auch eine Kombination dieser beiden Methoden verwenden

String string = "[wdsd34svdf]";
System.out.println(StringUtils.removeStart(StringUtils.removeEnd(string, "]"), "["));
0
Debmalya Biswas