Split-String nur in der ersten Instanz – java

Lesezeit: 3 Minuten

Benutzer-Avatar
Dracula

Ich möchte eine Zeichenfolge durch ‘=’-Zeichen aufteilen. Aber ich möchte, dass es nur in erster Instanz geteilt wird. Wie kann ich das machen ? Hier ist ein JavaScript-Beispiel für ‘_’ char, aber es funktioniert bei mir nicht Split-String nur bei der ersten Instanz des angegebenen Zeichens

Beispiel :

apple=fruit table price=5

Wenn ich versuche, String.split(‘=’); es gibt

[apple],[fruit table price],[5]

Aber ich brauche

[apple],[fruit table price=5]

Vielen Dank

  • Du brauchst nicht zu fliehen =.

    – Rohit Jain

    27. August 2013 um 10:27 Uhr

Benutzer-Avatar
Zaheer Ahmed

string.split("=", limit=2);

Wie String.split(java.lang.String regex, int limit) erklärt:

Das von dieser Methode zurückgegebene Array enthält jeden Teilstring dieses Strings, der durch einen anderen Teilstring beendet wird, der mit dem angegebenen Ausdruck übereinstimmt, oder der durch das Ende des Strings beendet wird. Die Teilstrings im Array sind in der Reihenfolge, in der sie in diesem String vorkommen. Wenn der Ausdruck mit keinem Teil der Eingabe übereinstimmt, hat das resultierende Array nur ein Element, nämlich diesen String.

Das limit Der Parameter steuert, wie oft das Muster angewendet wird, und wirkt sich daher auf die Länge des resultierenden Arrays aus. Wenn die Grenze n größer als Null ist, wird das Muster höchstens angewendet n – 1 mal, die Länge des Arrays ist nicht größer als nund der letzte Eintrag des Arrays enthält alle Eingaben nach dem letzten übereinstimmenden Trennzeichen.

Die Saite boo:and:fooliefert beispielsweise mit diesen Parametern folgende Ergebnisse:

Regex Limit    Result
:     2        { "boo", "and:foo" }
:     5        { "boo", "and", "foo" }
:    -2        { "boo", "and", "foo" }
o     5        { "b", "", ":and:f", "", "" }
o    -2        { "b", "", ":and:f", "", "" }
o     0        { "b", "", ":and:f" }

  • Es ist verwirrend zu verstehen, aber es funktioniert einfach! Vielen Dank!

    – Clint Eastwood

    25. Februar 2016 um 17:04 Uhr

  • Einige Erläuterungen: Limit 2 gibt eine Liste von HÖCHSTENS 2 Elementen zurück. Es kann eine Liste mit 1 Element zurückgeben, wenn es keine Übereinstimmung mit dem Ausdruck gibt. Wenn es 2 Übereinstimmungen mit dem Ausdruck gibt, wird das zweite Element des zurückgegebenen Arrays nicht geteilt.

    – Modell13

    3. Januar 2018 um 15:25 Uhr


Benutzer-Avatar
codeMan

Ja, das können Sie, übergeben Sie einfach den Integer-Parameter an die Split-Methode

String stSplit = "apple=fruit table price=5"

stSplit.split("=", 2);

Hier ist eine Java-Doc-Referenz: String#split(java.lang.String, int)

Benutzer-Avatar
Shiva

Wie viele andere Antworten den Limit-Ansatz nahelegen, kann dies ein anderer Weg sein

Du kannst den … benutzen Index von Methode auf String, die das erste Vorkommen des angegebenen Zeichens zurückgibt. Mit diesem Index können Sie die gewünschte Ausgabe erhalten

String target = "apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));

  • Dies teilt nicht, sondern extrahiert den zweiten Teil. Für den ersten Teil wäre eine weitere Codezeile erforderlich … 4 Zeilen vs. 1 = Daumen nach unten

    – Clint Eastwood

    25. Februar 2016 um 17:06 Uhr


Benutzer-Avatar
Kailash Karki

String string = "This is test string on web";
String splitData[] = string.split("\\s", 2);

Result ::
splitData[0] =>  This
splitData[1] =>  is test string  


String string = "This is test string on web";
String splitData[] = string.split("\\s", 3);

Result ::
splitData[0] =>  This
splitData[1] =>  is
splitData[1] =>  test string on web

Standardmäßig erstellt die Split-Methode n Arrays auf der Grundlage der angegebenen Regex. Wenn Sie jedoch die Anzahl der nach einer Teilung zu erstellenden Arrays einschränken möchten, übergeben Sie das zweite Argument als ganzzahliges Argument.

Benutzer-Avatar
Bhola

Das funktioniert:

public class Split
{
    public static void main(String...args)
    {
        String a = "%abcdef&Ghijk%xyz";
        String b[] = a.split("%", 2);
        
        System.out.println("Value = "+b[1]);
    }
}

Benutzer-Avatar
Martin Košťál

String[] func(String apple){
String[] tmp = new String[2];
for(int i=0;i<apple.length;i++){
   if(apple.charAt(i)=='='){
      tmp[0]=apple.substring(0,i);
      tmp[1]=apple.substring(i+1,apple.length);
      break;
   }
}
return tmp;
}
//returns string_ARRAY_!

Ich schreibe gerne eigene Methoden 🙂

1352610cookie-checkSplit-String nur in der ersten Instanz – java

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy