【发布时间】:2012-08-04 12:57:02
【问题描述】:
我有这个代码:
String input = JOptionPane.showInputDialog("Enter text");
StringBuilder forward = new StringBuilder("");
StringBuilder backward = new StringBuilder("");
int f = 0;
int b = input.length();
while(f < input.length()) {
while(input.charAt(f) > 63) {
forward.append(input.charAt(f));
f++;
}
f++;
}
System.out.println(forward);
虽然程序没有完成,但是这里已经抛出异常了。它说:
线程“主”java.lang.StringIndexOutOfBoundsException 中的异常:字符串索引超出范围:5(范围取决于我输入的字符数) 在 java.lang.String.charAt(Unknown Source)
奇怪的是,我昨天编写了类似的代码,并且运行良好,而且实用性相同。
我已经搜索了堆栈论坛和文档 oracle,但我只发现当索引等于字符串的大小时抛出此异常(对于 charAt 方法)。
所以它似乎仍然是这里的问题,但我找不到它。
while(input.charAt(f) > 63)
编辑:
为什么该代码不起作用?再次抛出与上述相同的异常?
while(b > 0) {
if(input.charAt(b) > 63) {
backward.append(input.charAt(b));
}
b--;
}
【问题讨论】:
标签: java while-loop