2010-10-01 5 views

Répondre

2

java.util.Scanner de Java fragmente son entrée en fonction de certains delimiter. Par défaut, le modèle de délimiteur correspond aux espaces, donc votre entrée dans le scanner ne reste pas intacte dans ce cas, et vous obtiendriez "====", "Instructions", "====" du scanner.

+0

Vous pouvez changer le délimiteur: 'scan.useDelimiter ("\ n"):' – sixtyfootersdude

5

Le délimiteur de scanner par défaut est un espace. La méthode hasNext(...) prend en charge le délimiteur et donc il diviserait la chaîne aux espaces blancs et vérifierait d'abord ====, comme l'a dit kuropengin. Néanmoins, il semble que vous ayez une faute de frappe dans votre code, car vous n'utilisez pas du tout le modèle défini. Votre code devrait probablement lu:

String same = "==== Instructions ===="; 
Pattern title4 = Pattern.compile(same); 
Scanner scan = new Scanner(same); 
System.out.println(scan.hasNext(title4)); 

Mais ce que vous cherchez est la méthode findInLine(...). Il ignorera le délimiteur lors de la recherche de correspondances. Le code suivant

String same = "==== Instructions ===="; 
Pattern title4 = Pattern.compile(same); 
Scanner scan = new Scanner(same); 
System.out.println(scan.findInLine(title4)); 

retournera:

==== Instructions ====