2014-06-28 40 views
0

以下Java過程導致InputMismatchException錯誤的原因是什麼?Java InputMismatchException錯誤。是什麼導致了它?

import java.util.Scanner; 
public class Main { 
    public static void main(String[] args) { 
     String input = "hello 12345\n"; 
     Scanner s = new Scanner(input); 
     s.next("hello "); 
    } 
} 

謝謝

+0

想想next()方法做什麼。你能指望什麼? –

+0

[你爲什麼不試着運行這段代碼?](http://ideone.com/N6Q45Q) – Crozin

+0

@愛德華M.我期望它在要掃描的字符串開頭找到「hello」模式。 –

回答

1

這種情況的原因是hello[space]不在String令牌。該String是由一個空格分隔符標記化這樣的標記如下:

String input = "hello 12345\n"; 
Scanner s = new Scanner(input); 

while(s.hasNext()){ 
    System.out.println(s.next()); 
} 
//Outputs: Hello 
//   12345 

錯誤消息只告訴你它找不到hello[space]令牌,這是hello12345之中。

如果您要查找的模式,無論分隔符的使用,String#findInLine

s.findInLine("hello "); 
+0

@FrancescoRiccio太棒了!我最喜歡的方式是開始一天的早晨,幫助一些有代碼的人!謝謝OP。 –

相關問題