gpt4 book ai didi

java - 执行子字符串时字符串索引超出范围

转载 作者:行者123 更新时间:2023-12-02 04:58:55 24 4
gpt4 key购买 nike

我正在尝试创建一个程序来计算java中整数的3位数字之间的乘积。一切正常,直到我输入一个少于 3 位数字的数字,然后 Eclipse 抛出此错误:

Enter a number between 100 and 999
99
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 3
at java.lang.String.substring(Unknown Source)
at Ex8.main(Ex8.java:23)

我已经搜索了替代解决方案,所以我知道如何重写我的程序,以便它可以运行和工作,但我的问题是为什么我的程序不只是说“数字无效”而不是忽略我的程序如果声明?这是我的代码,提前感谢您的回答。

import java.util.Scanner;

public class Ex8 {

public static void main(String[] args) {
int number, firstDigit, secondDigit, thirdDigit, product;

Scanner scan = new Scanner(System.in);

System.out.println("Enter a number between 100 and 999");

number = scan.nextInt();
scan.close();

if (number <= 99 && number> 999){
System.out.println("number is not valid");
}
else{
firstDigit = Integer.parseInt(Integer.toString(number).substring(0, 1));
secondDigit = Integer.parseInt(Integer.toString(number).substring(1, 2));
thirdDigit = Integer.parseInt(Integer.toString(number).substring(2, 3));
product = firstDigit*secondDigit*thirdDigit;
System.out.println(product);
};
}
}

最佳答案

您用 && 编写了 if 语句

number <= 99 && number > 999

什么时候你应该真正使用||

number <= 99 || number > 999

这将修复代码。

关于java - 执行子字符串时字符串索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28484125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com