[英]Java String Error Out Of Bounds
我正在練習我的 Java 課程,任務是編寫一個程序,該程序的輸入是用空格分隔的列表。 關鍵是翻轉列表,即將最后一秒的第一名放在最后一秒之前並截斷負數。 但我不斷收到 StringIndexOutOfBounds 的這個錯誤。 似乎是什么問題?
public static void main(String args[])
{
Scanner in = new Scanner (System.in);
System.out.println("Insert the list: ");
String input = in.nextLine();
String out = out(input);
System.out.println(out);
}
public static String out (String input){
String reverse = "";
int counter = 0;
while (counter<=input.length()){/*
String min = input.charAt(counter) + input.charAt(counter+1);
int num = Integer.parseInt(min) ;
if ( num>=0 ){*/
reverse+= input.charAt(counter);
counter++;
/*}*/
}
return reverse;
}
我懷疑您的StringIndexOutOfBounds
來自您從索引 0 迭代到索引input.length
,所以 1 太多了。
為了charAt
,Java 中的字符串是 0 索引的,所以你從 0 開始計數(你會用簡單的英語稱之為“第一”)。 在這種情況下,最后一個字符位於索引length-1
。
所以,具體來說。 您接下來要解決的問題是while
循環中的條件。 我想你的意圖是說:
while (counter < input.length()) {
...
任何字符串都有從索引 0 到長度 1 的字符。 如果您嘗試執行 charAt(length),您最終會得到 StringIndexOutOfBounds。
將 while 行更改為下面,它應該可以工作:
while (counter<input.length()){
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.