[英]Convert Scanner next string to Int and check that the text entered is a number
我正在尝试将Scanner的下一个字符串转换为Int,并检查输入的文本是否为数字,如果不是数字系统打印,则不是数字,但如果是数字,则将其转换为int并除以十。
如果我不检查代码中的条件,则代码按预期运行。 但是,如果输入了文本,它将计算字符索引值。
如果存在该条件,则它将对每个数字进行计算,而不是在进行计算之前对数字求和,但不会计算其他字符索引值。
不检查条件:
Scanner inputtext = new Scanner(System.in);
System.out.print("Mata in ett tal: ");
String number = inputtext.next(); //Här matar användaren in text.
int sum = 0;
double number2 = 10.0;
for (int i=0; i < number.length(); i++) { //Här omvandlas texten till tal.
sum *= 10;
sum += (int) number.charAt(i)-(int)'0';
}
System.out.println("Resultat: " + sum); //Här matas talet ut.
System.out.println("Resultat delat med 10 : " + (sum/number2)); //Här divideras talet med 10.
}
}
检查时:
Scanner inputtext = new Scanner(System.in);
System.out.print("Mata in ett tal: ");
String number = inputtext.next(); //Här matar användaren in text.
int sum = 0;
double number2 = 10.0;
for (int i=0; i < number.length(); i++) { //Här omvandlas texten till tal.
char ch = number.charAt(i);
if (ch == '0' || ch == '1' || ch == '2' || ch == '3' || ch == '4' || ch == '5' || ch == '6'|| ch == '7'|| ch == '8'|| ch == '9'){
sum *= 10;
sum += (int) number.charAt(i)-(int)'0';
} else {
System.out.println("Detta är inte ett tal");
break;
}
System.out.println("Resultat: " + sum); //Här matas talet ut.
System.out.println("Resultat delat med 10 : " + (sum/number2)); //Här divideras talet med 10.
}
}
}
我希望如果输入的字符串包含数字,则将执行计算;如果添加了其他字符,则将告知用户这不是数字
您可以使用Character中的方法:
通过使用它,遍历字符串并测试所有字符是否都是数字。
另外,请记住,“ // d”代表一个数字,因此,如果您只想扫描一个数字,则可以使用该数字。 我知道这并不能说明太多,但我认为提醒可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.