簡體   English   中英

Java 字符串錯誤越界

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM