2011-09-28 38 views
0

我試圖用一個Scanner獲得來自用戶的日期格式MM/DD/YYYY使用分隔符/這樣做,但一旦應用程序停止用戶輸入數據繼續。如果我簡單地使用標準的空格分隔符,它將工作得如何。使用正斜槓作爲分隔符掃描儀

Scanner scanner = new Scanner(System.in); 
scanner.useDelimiter("/"); 

System.out.print("Birth Date (MM/DD/YYYY) "); 
birthMonth = scanner.nextInt(); 
birthDay = scanner.nextInt(); 
birthYear = scanner.nextInt(); 
+0

是否拋出異常? –

+0

這是什麼意思? –

+2

如果您使用'/'作爲分隔符,你鍵入'/'後的一年? ;) –

回答

2

你唯一的分隔符是/不換行。這意味着你必須鍵入後年/或添加新行作爲分隔符。

嘗試

scanner.useDelimiter("[/\n]"); 
0

你必須接受斜線和換行字符或提示將不會返回控制權交給用戶。

import java.util.Scanner; 

public class Test { 

     public static void main(String[] args) { 

       Scanner scanner = new Scanner(System.in); 
       scanner.useDelimiter("[/\n]"); 

       System.out.print("Birth Date (MM/DD/YYYY) "); 
       int birthMonth = scanner.nextInt(); 
       int birthDay = scanner.nextInt(); 
       int birthYear = scanner.nextInt(); 
       scanner.close(); 

       System.out.printf("Day(%02d), Month(%02d), Year(%04d)%n", birthDay, birthMonth, birthYear); 
     } 
} 
+0

正斜槓不需要轉義。 –

+0

你說得對,羅伯。謝謝。 –