gpt4 book ai didi

java - StringIndexOutOfBoundsException,从字符串方法中删除空格

转载 作者:行者123 更新时间:2023-11-30 09:42:22 25 4
gpt4 key购买 nike

我正在使用 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());
}

最佳答案

您将在 for 循环中到达 s.length(),但在第二个 if 语句中访问 s.charAt(i + 1)。尝试只达到 s.length() - 1:

for (int i = 0; i < s.length() - 1; 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));
}
}

然后检查最后一个字符。

关于java - StringIndexOutOfBoundsException,从字符串方法中删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8724104/

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