【发布时间】:2017-02-12 20:36:16
【问题描述】:
我已经阅读了许多类似的主题,但在我的无知中似乎无法弄清楚如何将答案应用到我的代码中。对不起...
运行下面的代码时出现错误: java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:
程序的结果是好的。我从使用扫描仪输入的字符串中获取所有大写字母。但是错误消息有点碍事。
非常感谢任何帮助!提前致谢!
import java.util.Scanner;
public class TestClass {
public static void main(String[] args) {
Scanner in3 = new Scanner(System.in);
System.out.print("Enter a senctence with capitals: ");
String inputString = in3.nextLine();
int stringLength = String.valueOf(inputString).length();
int i = 0;
while (i <= stringLength)
{
int subsStart = i;
int subsEind = i + 1;
String stringToCheck = inputString.substring(subsStart, subsEind);
char letterToCheck = stringToCheck.charAt(0);
if (Character.isUpperCase(letterToCheck))
{
System.out.println(letterToCheck);
}
i++;
}
in3.close();
}
}
【问题讨论】:
-
当 i == stringLength 时会发生什么?子串是如何工作的?
-
如果
i == stringLength - 1会发生什么? -
那你为什么需要
String.valueOf已经是字符串的东西? -
你也应该看看for loop。在您的情况下,它比
while更合适。 -
感谢所有反馈的家伙。刚开始使用 Java,感谢您是 cmets,并将检查所有内容!
标签: java