【发布时间】:2012-02-02 04:35:38
【问题描述】:
我正在使用 java 作为我的主人的作业来制作一个密码学/密码分析程序。无论如何,我使用一种方法来删除无用的空格并使我正确显示到 JTextArea 的字符串。这种方法非常适合小文本,但是当我使用更大的文本(从 .txt 文件加载)时,它会给我一个 StringIndexOutOfBoundsException。任何人都可以帮忙吗? 提前致谢。
这是方法:
public void Data(String s) {
System.out.print("Analysis" + "\n" + s);
jTextArea1.setText(s);
StringBuilder buf = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
if (!Character.isWhitespace(s.charAt(i))) {
buf.append(s.charAt(i));
} else if (Character.isWhitespace(s.charAt(i)) && !Character.isWhitespace(s.charAt(i + 1))) {
buf.append(s.charAt(i));
}
}
System.out.println(buf.toString() + "\n" + "from buf");
jTextArea1.setText(buf.toString());
}
【问题讨论】:
-
你读过
s.charAt(i + 1),所以如果字符串中的最后一个字符是空格,你会得到越界错误。如果i + 1 == s.length(),您将无法读取s.charAt(i + 1),在这种情况下会读取。
标签: java string swing stringbuilder