[問題] 請問關於ReverseString程式的問題

看板java作者 (緣投肥)時間12年前 (2012/04/07 10:03), 編輯推噓5(508)
留言13則, 6人參與, 最新討論串1/1
各位大哥大姐你們好,我是剛學習JAVA的新手,第一次發文,如有冒犯之處,請多包涵 就是我在一個自學網上練習一個習題, 題目為:寫一個將顛倒字串輸出的程式ReverseString.java。 我將此網站給的答案另存為Java檔 然後compile成class檔 最後執行 java ReverseString 跑出一串訊息為 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at ReverseString.main<ReverseString.java:10> 是不是哪裡出錯呢?並沒有將顛倒字串輸出阿, 可不可以請各位大哥大姐幫我解決問題呢? 不好意思麻煩了,謝謝。 Code如下: import java.io.*; /**ReverseString 將第一個參數字串以相反的順序輸出 */ public class ReverseString { public static void main(String[] args) throws IOException{ int length = args[0].length(); //輸出結果為result char result[] = new char[length]; //for args[0]中的第一個字到最後一個字 for(int i = 0 ; i < length;i++){ //result[length - i - 1] = args[0][i] result[length - i - 1] = args[0].charAt(i); }//end for System.out.println(result); }//end main }//end ReverseString -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.52.180

04/07 10:10, , 1F
我在網路上找到java.lang.arrayindexOutOfBoundsException
04/07 10:10, 1F

04/07 10:13, , 2F
的意思是數組上限超出了,是什麼意思呢?
04/07 10:13, 2F

04/07 10:14, , 3F
i < length 是這行出的問題嗎?
04/07 10:14, 3F

04/07 11:10, , 4F
都告訴你第十行出問題了,你也講一下第十行是啥吧.....
04/07 11:10, 4F

04/07 12:08, , 5F
意思是例如 array A[] 長度為 5,結果你去抓 A[10]
04/07 12:08, 5F

04/07 12:11, , 6F
如果 args[] 是空的,那 args[0] 也會爆掉
04/07 12:11, 6F

04/07 14:47, , 7F
第十行是int length = args[0].length();
04/07 14:47, 7F

04/07 14:53, , 8F
所以是我一開始設的長度問題嗎? 謝謝P大跟E大的回覆!
04/07 14:53, 8F

04/07 15:47, , 9F
還是試不出來耶...
04/07 15:47, 9F

04/07 16:28, , 10F
執行 java ReverseString HelloWorld 看結果
04/07 16:28, 10F

04/07 16:42, , 11F
謝謝你ssc24大大 成功了
04/07 16:42, 11F

04/08 00:08, , 12F
可以把String轉成StringBuilder 有reverse可用
04/08 00:08, 12F

04/10 17:33, , 13F
他字串是從args[0]取得,而這個是你要給他的
04/10 17:33, 13F
文章代碼(AID): #1FVw23_z (java)