使用for循环,如何反转字符串?

时间:2017-03-12 10:19:37

标签: java arrays netbeans-8

此代码无效。你能告诉我什么是错的,为什么?

package exer0403e08;


public class EXER0403E08 {
    public static void main(String[] args) {
        String str= "hello";
        System.out.println(str);
        char[]strchar = str.toCharArray();
        int first;
        int last=5;

        System.out.println("The reversed is: ");
        for (first=1; first<=5; first++){
            strchar[first]=strchar[last];


            last--;

        } 
        str=String.valueOf(strchar);
        str=str.toUpperCase();
        System.out.println(str);


    }

}

答案是&#34; OLLO&#34;而且我想把它变成&#34; OLLEH&#34;。

3 个答案:

答案 0 :(得分:1)

你循环有几个问题。你误解了数组索引。

您正在迭代并修改同一个数组。因此,对于数组,奇怪的行为和索引将从零开始。

所以固定代码将是

for letter in 'Python':
      print 'Current Letter :', letter

fruits = 1,45

for fruit in fruits:

   print 'Current fruit :', fruit
print type(fruit)
print type(letter)

更新:

演示链接http://ideone.com/GfgDZ3

答案 1 :(得分:1)

你可以这样编写自己的方法:

    public static String reverse(String str)
     {
     String reversed = new String();

     for ( int j = str.length()-1; j >= 0; j-- )
         reversed += str.charAt(j);

     return reversed;
     }

然后尝试反向(&#34; Hello&#34;);

答案 2 :(得分:0)

你有更好的java方法来反转字符串。请检查this answer:

您可以使用:

new StringBuilder(hi).reverse().toString()

或者,对于早于JDK 1.5的版本,使用java.util.StringBuffer而不是StringBuilder - 它们具有相同的API。感谢评论员指出现在首选StringBuilder