scanner delimiter "

manius

Mitglied
Hi,

irgendwie kann ich nicht das Anführungszeichen suchen !

String str = " blaaaa text \\; hmmmmm \" b \" ";
Scanner s = new Scanner(str);

if( s.hasNext(r)== true)
System.out.printf("joo gefunden !");

String pattern = "\"";
Pattern r = Pattern.compile(pattern);

if (s.hasNext("\"" ) == true)
System.out.printf("joo gefunden !");

beide Fälle funktionieren nicht !

Hat jemand eine Idee ?

Danke
 
Was ist
Code:
r
?

du musst mit
Code:
scanner.useDelimiter(String regex)
den Delimiter setzen, bevor du ihn anwendest.
 
mit useDelimiter habe ich auch schon probiert !
r ist Pattern.
die Reihenfolge habe ich etwas durcheinander gebracht, sollte heissen:

String str = " blaaaa text \\; hmmmmm \" b \" ";

if (s.hasNext("\"" ) == true)
System.out.printf("has next");
 
Ok,
ja mit useDelimiter und reinem hasNext() funktioniert !

String str = " blaaaa text \\; hmmmmm \" b \" ";
s.useDelimiter("\"");
if (s.hasNext() == true)
System.out.printf("has next");

wieso aber hasNext("\"") nicht funktioniert ist mir rätsel aber Danke !
 
Lexikalische Scanner schauen normalerweise immer nur auf das nächste Lexem. Zu Beginn steht der Cursor am Anfang des Strings. Das nächste Lexem ist dann eben "blaaaa". Und das ist eben kein "\"". Also kommt als nächstes Lexem keines, das wie "\"" aussieht. Also gibt hasNext("\"") false zurück.

Ark
 
Weißt du denn überhaupt,
  • was genau du erreichen willst,
  • wie ein java.util.Scanner funktioniert,
  • was "delimiter" hier bedeutet und
  • auf welche Weise ein Scanner dir dabei helfen sollte, das gewünschte Ziel zu erreichen?
Ark
 

Zurück
Oben