2016-02-26 68 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 –