2016-05-16 3 views
3

Ich möchte das Sonderzeichen "\" aufteilen. Allerdings scheint es nichtWie teilt man die Zeichenfolge in Java durch ?

a.split("\"); 

oder

a.split("\\"); 
+1

Es sollte funktionieren: 'String [] Split = a.split ("\\");' – theTechnoKid

+0

Warum denken Sie, die zweite Option wird nicht funktionieren? Können Sie eine Beispieleingabe teilen und erklären, wie sich das Ergebnis von dem unterscheidet, was Sie erwarten? – Mureinik

+0

Ausnahme im Thread "main" java.util.regex.PatternSyntaxException: Unerwarteter interner Fehler in der Nähe von Index 1 \ –

Antwort

2

Während Sie die regulären Ausdruck entkommen konnte dieses Problem gelöst, indem auszuarbeiten zu String.split mit dem etwas überraschend

String str = "a\\b\\c"; 
str.split("\\\\"); 

es ist auch möglich, eine Pattern mit Pattern.LITERAL zu kompilieren und dann Pattern.split(CharSequence) verwenden wie

String str = "a\\b\\c"; 
Pattern p = Pattern.compile("\\", Pattern.LITERAL); 
String[] arr = p.split(str); 
System.out.println(Arrays.toString(arr)); 

Welche

gibt
[a, b, c] 
+0

Dies ist auch eine nette Möglichkeit, es zu tun. Danke für die Antwort –

+0

Danke @ChitKhine für die Bearbeitung - ich änderte die Backticks in doppelte Anführungszeichen. –

2

wird durch die Verwendung

a.split("\\\\"); 
+0

Gute Arbeit ... genaue ans .. –

0

einfach \ n verwenden innerhalb der Zeichenkette, in der Notwendigkeit. Keine Methode muss geteilt werden.

  1. "\" Sonderzeichen in Java. Es wird verwendet, um einen Charakter zu überspringen. Wie zB String s = "Ich bin ein \" Student \ "einer Universität!"; Hear Double Cote ist nicht ohne Verwendung von "\" zulässig.
  2. Wir können nicht "Single" in einer Zeichenfolge verwenden. String s = "Ich bin ein Student einer Universität!"; Hear "\" wird ein Err machen.
  3. Keine Methode muss mit "\" getrennt werden Verwenden Sie einfach "\ n", wo Sie brauchen.

    Oder einen anderen Charakter mit ihm verwenden wie dieses

    String s = "Thir is a Tiger.\'I like it very nuch!\'I it a pet!"; 
    String s2[] = s.split("\'"); 
    for (int i = 0; i < s2.length; i++) { 
        System.out.println(i+" value "+s2[i]); 
    } 
    
+0

mein Zweck ist hier für mein Dateiverzeichnis zu verwenden. Als ich das Dateiverzeichnis abgerufen habe, habe ich die Zeichenfolge als Licht \ Hallo \ Text.txt erhalten. In diesem Fall werden wir \ in der Zeichenfolge haben. –

+0

Dann benutze es: => String s = "Licht \\ Hallo \\ text.txt"; Zeichenfolge s2 [] = s.split ("\\\\"); für (int i = 0; i

0
String s = "light\\hello\\text.txt"; 
    String s3[] = s.split(Pattern.quote("\\")); 
    for (int i = 0; i < s3.length; i++) { 
     System.out.println(i+" value "+s3[i]); 
} 
Verwandte Themen