類Lab9爲什麼我的字符串索引有時會出界?
ScalesSolution s = new ScalesSolution("00100");
s.println();
s.SmallChange();
s.println();
方法SmallChange在ScalesSolution類
public void SmallChange() {
int n = scasol.length();
System.out.println("The length of scasol is "+ n);
//CS2004 method generates a random integer number between 0 and n
int p = CS2004.UI(0,n);
StringBuilder sb = new StringBuilder(scasol);
if (scasol.charAt(p) == '0') {
sb.setCharAt(p, '1');
} else {
sb.setCharAt(p, '0');
}
scasol = sb.toString();
}
運行代碼多次後,我有時會收到錯誤
"String index out of range 5"
即使這種打印出
The length of scasol is 5
每次運行時間
錯誤: scasol的長度爲5 異常在線程「主」 java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:5 在java.lang.String中.charAt(String.java:658) 在ScalesSolution.SmallChange(ScalesSolution.java:15)//指向如果(scasol.charAt(p)== '0') 在Lab9.main(Lab9.java:9 )
我不明白它會出界如何的時候。請幫忙嗎?
如果字符串的長度是5,那麼你可以在它進入指數從0至4。5去是出界。 – Ghostkeeper
那麼我該如何解決這個問題? – Adz
確保'CS2004.UI'生成一個號碼是0,1,2,3或4。我想你可能需要做'CS2004.UI(0,N-1);' – Ghostkeeper