反向字符串 - ArrayOutOfBoundException

时间:2014-08-05 09:30:17

标签: java

我想将String“Hello World”更改为“World hello”。这是我的代码:

    class StringTest
    {
        public static void main(String args[])
        {
            String str= "Hello World";
            String wordcount[]=str.split(" ");
            int count= wordcount.length;
            System.out.println(count);
            for(int i=count;i>0;i--)
            {
                System.out.print(wordcount[i]);
            }

        }
    }

获取错误ArrayOutOfBoundException。请帮忙。

3 个答案:

答案 0 :(得分:3)

没有与count匹配的索引。

数组的起始索引是第0个索引。因此,如果您的数组的长度为5,则其索引从04

更改

  for(int i=count;i>0;i--){ // there is no index in array for count
     // and this for loop not consider 0th index
     System.out.print(wordcount[i]);
  }

  for(int i=count-1;i>-1;i--){ //now loop starts from count-1 and consider 0index
            System.out.print(wordcount[i]);
  }

答案 1 :(得分:2)

数组在Java中基于零。你应该这样做:

for(int i=count-1;i>0;i--)
                ↑

如果您有一个大小为N的数组,则索引的范围为[0, N-1]

"I love to lie down and pretend I'm a carrot"
 ↓↓↓↓↓↓↓↓↓↓                                ↓
 0123456789...                             42

答案 2 :(得分:0)

你可以像这样使用

  String str= "Hello World";
            String wordcount[]=str.split(" ");
            int count= wordcount.length;
            System.out.println(count);
            for(int i=count-1;i>=0;i--)
            {
                System.out.print(wordcount[i]);
            }