这个代码中的对象扫描仪有什么问题?
void exp03(){
System.out.println("---CREATION DES POINTS---");
char res = 'O';
Scanner sc = new Scanner(System.in);
do{
Point a = new Point();
try{
System.out.println("Entrez la valeur du coordonnée du point suivant X");
double resx = sc.nextDouble();
a.setX(resx);
System.out.println("Entrez la valeur du coordonnée du point suivant Y");
double resy = sc.nextDouble();
a.setY(resy);
}
catch(CoorExp e){
System.out.println("ERREUR:coordonnée négative!"); //exit
}
System.out.println("1- Afficher le point creer");
System.out.println("2- Deplacer le point creer");
int i = sc.nextInt();
switch (i){
case 1 :
break;
case 2 :
System.out.println("entrer la valeur de deplacement suivant X");
double depx =sc.nextDouble();
a.setDx(depx);
System.out.println("entrer la valeur de deplacement suivant Y");
double depy =sc.nextDouble();
a.setDy(depy);
a.deplace(depx, depy);
System.out.println("Nouvelles coordonnées du point");
a.affiche();
break;
default:
System.out.println("Choix Incorrect ! ");
}
System.out.println("Voulez vous creez un autre point ? O/N");//exception
res = sc.next().charAt(0);
}
while(res == 'O');
}
当我选择案例2时,我得到了这个错误:
> Exception in thread "main" java.util.InputMismatchException
> java.util.Scanner.throwFor(Scanner.java:864)
> java.util.Scanner.next(Scanner.java:1485)
> java.util.Scanner.nextDouble(Scanner.java:2413)
> com.mbisc.java.Test.exp03(Test.java:115)
> com.mbisc.java.Test.<init>(Test.java:9)
> com.mbisc.java.Test.main(Test.java:137)
我认为scanner首先声明为int,现在在切换之后,我用类型double收集答案。我不太确定,我需要更多地了解scanner类是如何工作的。
首先,你必须检查是否双
已被读取:
if (sc.hasNextDouble())
double depx = sc.nextDouble();
可能是double
不存在。
或者你应该为你的扫描仪
声明一个区域设置
。
Scanner sc = new Scanner(System.in).useLocale(Locale.US);
我正在用Java编程 我正在尝试编写代码,以识别用户是否在基于控制台的程序中按enter键。 我如何使用java做到这一点。有人告诉我,这可以使用Scanner或缓冲输入阅读器来完成。我不明白(或不知道如何使用)缓冲输入阅读器。 我试着用scanner来做这件事,但按了两次enter键后,程序终止,无法工作 谢啦 --编辑--以下代码使用字符串的方法而不是 如何做到这一点,使用缓冲输入读取器的好处
我正在创建一个小算法,这是其中的一部分。 如果用户输入非整数值,我想输出一条消息,让用户再次输入一个数字: 我得到了一个永无止境的循环,我不知道为什么。 如果用户输入非整数数字,我如何识别? 如果用户输入非整数数字,我如何要求用户再次输入? 更新 当我打印异常时,我得到了InputMismatchExctive,我应该怎么做?
我想从标准输入中读取一个双数,但是我总是得到这个异常: Java . util . inputmismatchexception 如果输入是整数,那没问题,但是如果是双精度的,我会得到异常。 线程“main”Java . util . inputmismatchexception Java . util . scanner . throw for(scanner . Java:864)Java .
问题内容: 如何将扫描仪的定界符设置为;或换行? 我试过: 但这不起作用。 问题答案: 通常,在模式中,您需要将翻倍。 所以,尝试 要么 编辑 :如果是问题,则可能要尝试以下操作: 它匹配的一个或多个,和。 注意 :我还没有尝试过这些。
问题内容: 我有一个创建多个对象并将其放入一个类的类,如下所示: 我有一个从控制台扫描输入“ add”的应用程序,如果找到该应用程序,则调用如下所示的方法: 该应用程序应允许用户根据需要多次输入“添加”,但是在add调用该方法后将出现错误“找不到行” 。 我猜这是因为方法中的尚未关闭,然后在需要时重新打开。这是程序的问题吗?如果是,我将如何修复它? 请注意,该程序尚未完成,因为我将添加一种出售这些
问题内容: 我正在尝试读取具有多个单词的字符串,即。洛杉矶或纽约市。如果有两个词并将它们分割在变量之间,则使用scanner.next()进行“出发”和“到达”只会读取第一个。nextLine()也不是很幸运。这是我的代码: 我知道这很简单,但我还没有弄清楚。 这是上面的代码的输入/输出: 输入航班号:29 输入出发城市:(立即跳至下一行) 输入到达城市: -—我真正想要的是---- 输入航班号: