2016-02-26 72 views
1

這裏是我的代碼:掃描雙不帶的try-catch工作

public static void setPriority(List<Performer> listperformer) 
{ 
    Scanner localsc = new Scanner(System.in); 
    if(listperformer.isEmpty() == true) 
    { 
    System.out.println("- empty -"); 
    return; 
    } 
    else 
    { 
    System.out.println("ID:"); 
    int id = localsc.nextInt(); 
    if(listperformer.size() < id || id < 0) 
    { 
    System.out.println("Invalid input!"); 
    return; 
    } 
    else 
    { 
    double priority = 1.0; 
    try{ 
    System.out.println("Priority:"); 
    priority = localsc.nextDouble(); 
    listperformer.get(id).setPriority(priority); 

    }catch(InputMismatchException e) 
    { 
    System.err.println("Invalid input!"); 
    } 

    } 
    } 

當我想掃描像2,7它的工作原理,但如果我把逗號,而不是一個點,它會導致到「輸入無效!」輸出。

+0

那麼首先我是有沒有的,這只是嘗試,爲什麼這個代碼不接受點 – Johnny

+2

什麼是你的語言環境?在任何語言環境中逗號和點並不意味着相同的事物。 –

+0

好的,但通常情況下double類型的變量總是帶點,或者我錯了嗎? – Johnny

回答

1

檢查,如果你需要使用美國地區

Scanner localsc = new Scanner(System.in); 
localsc.useLocale(Locale.US); 
+0

作品!非常感謝! – Johnny

+0

@FarazDurrani你不應該,但他應該是 – Pragnani

+0

謝謝@PragnaniKinnera –