java - 整数字符串检查器
问题描述
获得了大部分代码,但无法弄清楚为什么会出现编译器错误。错误是:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
at java.base/java.lang.String.charAt(String.java:693)
at LabProgram.main(LabProgram.java:13)
我对java有点陌生,所以我对错误消息不太熟悉。但是我的程序应该检查数字 0 到 9 是否是数字,并报告它们是否是数字。如果它包含除数字以外的任何内容,它将输出否。如果有人能看到我做错了什么,那会有所帮助
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
boolean thing = true;
String userInput;
userInput = scnr.nextLine();
for (int i = 0; i <= userInput.length() && thing == true; i++) {
if (userInput.charAt(i) == '0' || userInput.charAt(i) == '1' || userInput.charAt(i) == '2' ||
userInput.charAt(i) == '3' || userInput.charAt(i) == '4' || userInput.charAt(i) == '5' ||
userInput.charAt(i) == '6' || userInput.charAt(i) == '7' || userInput.charAt(i) == '8' ||
userInput.charAt(i) == '9') {
thing = true;
if (i == userInput.length()) {
System.out.print("yes");
System.out.print("");
}
}
else{
System.out.print("no");
System.out.print(" ");
thing = false;
}
}
}
}
解决方案
推荐阅读
- javascript - 我可以更改或上传我的 html 文件目录中的文件吗?
- google-signin - 新的 Google 身份服务 JavaScript 库 - 我如何向 google api 发出授权请求?
- javascript - 如何在 react js 中使用 useInvertedScale 和最新的成帧器运动版本?
- javascript - 苗条的输入数字验证。我无法阻止字母的输入
- r - 在 R Shiny 中,如何扭转反应链?
- json - JSON Schema 中有没有办法让数字属性的最小值和最大值以另一个属性为条件?
- swift - Swift Combine 框架 setFailureType 错误运算符
- julia - 将字符串中的 2 位日期年份转换为日期对象
- c# - 如何在C#中制作一个必须在特定时间范围内特定位置单击的按钮
- c++ - Qt 中的元组和 MSVC 编译器