저는 암호를 사용하여 암호 해독 프로그램을 만들고 있습니다. 암호 해독 프로그램은 내 마스터의 숙제로 java를 사용하고 있습니다. 어쨌든, 나는 무의미한 공백을 삭제하고 String을 적절한 JTextArea로 표시하는 메서드를 사용합니다. 이 방법은 작은 텍스트에 적합하지만 더 큰 텍스트 (.txt 파일에서로드)를 사용할 때 StringIndexOutOfBoundsException을 제공합니다. 누구든지 도와 줄 수 있습니까? 미리 감사드립니다. 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)'을 읽을 수 없다. –