-1
我得到這個片段錯誤字符串索引出界外的片斷
char a[] = new char[5];
Scanner sc = new Scanner(System.in);
System.out.println("Please enter values");
for (int i = 0; i < 5; i++) {
a[i] = sc.next().charAt(i);
}
我得到這個片段錯誤字符串索引出界外的片斷
char a[] = new char[5];
Scanner sc = new Scanner(System.in);
System.out.println("Please enter values");
for (int i = 0; i < 5; i++) {
a[i] = sc.next().charAt(i);
}
您應該檢查輸入字符串長度:
for (int i = 0; i < 5; i++) {
String str = sc.next();
if (str.length() > i) {
a[i] = str.charAt(i);
}
}
但是你的算法是怪異。
你這樣做:
for (int i = 0; i < 5; i++) {
a[i] = sc.next().charAt(i);
}
但如果用戶鍵入少於5個字符的字符串?
,那麼你試圖讀取超出界限的元素...
,說明在你的代碼錯誤很明顯的原因..
驗證輸入,甚至更好,使for循環從0開始直到輸入len。
你如何輸入你的價值觀,你想要完成什麼? –
您每次循環時都會輸入一個新單詞?這不是胡說嗎?你想達到什麼目的? –
我只是想以這種方式輸入數組內的值。不要試圖完成任何事情。請不要介意,這是我的第一個問題。 –