亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Java 中獲取“線程“main”java.lang.StringIndexOutOf

在 Java 中獲取“線程“main”java.lang.StringIndexOutOf

智慧大石 2021-12-10 17:05:44
輸出應該是用自己的行向后打印的數組的每個單詞public class Main{    public static void main(String[] args)    {         String [] list = {"every", "nearing", "checking", "food", "stand", "value"};         String reverse = "";         int length = list.length;         for(int j=0; j<list.length; j++)         {            String word = list[j];            for ( int i = length - 1 ; i >= 0 ; i-- )            {                reverse = reverse + word.charAt(i);            }            System.out.println(reverse);         }    }}但我不斷收到這條消息   Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String     index out of range: 5    at java.lang.String.charAt(String.java:658)    enter code here`at Main.main(Main.java:13)
查看完整描述

3 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

我稍微清理了你的代碼。不要依賴不會提高代碼可讀性的臨時變量。嘗試使用for-each循環(它們可以提高可讀性)。應用這兩點,給我們


String[] list = { "every", "nearing", "checking", "food", "stand", "value" };

for (String word : list) {

    for (int i = word.length() - 1; i >= 0; i--) {

        System.out.print(word.charAt(i));

    }

    System.out.println();

}

這是基于您的原始代碼。就個人而言,我更喜歡使用StringBuilder它的reverse()方法。喜歡,


for (String word : list) {

    System.out.println(new StringBuilder(word).reverse());

}

或在 Java 8+ 中,map類似


Arrays.stream(list).map(s -> new StringBuilder(s).reverse())

        .forEachOrdered(System.out::println);


查看完整回答
反對 回復 2021-12-10
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

for ( int i = length - 1 ; i >= 0 ; i-- )

length您在上面使用的值是list數組的長度,而不是單詞。


記住在每個循環后清空反向詞:


        System.out.println(reverse);

        reverse = "";

如果你不沖洗,你會得到:


yrev

yrevgnirae

yrevgniraegnikceh

yrevgniraegnikcehdoo

yrevgniraegnikcehdoodnat

yrevgniraegnikcehdoodnateula

代替:


yrev

gnirae

gnikceh

doo

dnat

eula


查看完整回答
反對 回復 2021-12-10
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

驗證提供的參數在 Main.java:13 中是否有效。檢查提供的偏移量是否指向有效索引,并且 count 參數未指向大于字符串本身大小的索引。


一個替代:


public  String[]  reverseString(String[] words)

{

    String[] reverse=new String[words.length];


    for(int i=0;i<words.length;i++)

    {   

        //added for setting element as emptyString instead of null

        reverse[i] = "";

        for(int j=words[i].length()-1;j>=0;j--)

        {

            reverse[i]+=words[i].substring(j,j+1);

        }

    }

    System.out.println(Arrays.toString(reverse));

    return reverse;


}


查看完整回答
反對 回復 2021-12-10
  • 3 回答
  • 0 關注
  • 255 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號