2016-07-12 28 views
0

Ich bin neu in Java und ich versuche, ein einfaches Programm zu erstellen, das eine Zeichenfolge mit Trennzeichen analysieren würde. Jedoch, wenn ich versuche, dies zu tun, anstatt die Zeilen wie folgt zu drucken:Java Delimiter Zeichen einzeln drucken

es druckt jedes Zeichen einzeln auf einer eigenen Zeile. Hier ist mein Code:

import java.util.Scanner; 

public class ScannerDemo { 

    public static void main(String args[]){ 
     String s = "Hello World|I am bob|how are you "; 
     Scanner scan = new Scanner(s); 
     scan.useDelimiter("|"); 
     System.out.println(scan.next()); 
     while (scan.hasNext()){ 
      System.out.println(scan.next()); 
     } 

    } 
} 

Jede mögliche Hilfe

+2

'|' (Pipeline) eine besondere Bedeutung in regulären Ausdrücken hat - man muss es entkommen. Lesen Sie dieses sehr nahe Thema: http://stackoverflow.com/questions/9808689/why-does-string-split-need-pipe-delimiter-to-be-caped –

Antwort

1

apreciated als PM 77-1 angegeben hat Sie das Pipe-Zeichen zu entkommen:

import java.util.Scanner; 

    public class ScannerDemo { 

    public static void main(String args[]){ 
     String s = "Hello World|I am bob|how are you "; 
     Scanner scan = new Scanner(s); 
     scan.useDelimiter("\\|"); 
     System.out.println(scan.next()); 
     while (scan.hasNext()){ 
      System.out.println(scan.next()); 
     } 

    } 
} 
2

Bitte verwenden verschiedene Trennzeichen wie PIPE hat Sonderzeichen, dem es zu entkommen gilt.

Wenn streng brauchen Pipesymbol versuchen dann

scan.useDelimiter("\\|"); 
+0

Nur um hinzuzufügen ... Ich weiß wirklich nicht den Zweck von Ihrer Anforderung. Aber wenn Sie nur von String trennen möchten (keine andere IO-Operation), dann würde ich vorschlagen, dass Sie die Split-Methode in der String-Klasse verwenden, die String-Array zurückgibt. –