为什么把for (int a = 1; a <= nc.length ; a++) 改为for (int a = 1; a == nc.length ; a++) 时不循环执行rstr += nc[nc.length - a];还有别的什么好的方法吗 ?
public class PaiXu {
public static void main(String[] args) {
String str = "abcd";
String rstr = "";
char[] nc = str.toCharArray();
for (int a = 1; a <= nc.length ; a++) {
rstr += nc[nc.length - a];
}
System.out.println(rstr);
}
}

解决方案 »

  1.   

    StringBuffer s = new StringBuffer("abcd").reverse();
      

  2.   

    用StringBuffer吧.
    如果用String的话,还有个方法也可以阿,做JS的时候常用
    String s="abcd";
    String rs="";
    for(int i=0;i<s.length();i++)
    {
        rs+=s.charAt(i);
    }
    System.out.println(rs);
      

  3.   

    办法有多种:
    就拿你的这种做法,就是反转输出:
    public class PaiXu { 
    public static void main(String[] args) { 
    String str = "abcd"; 
    String rstr = ""; 
    char[] nc = str.toCharArray(); 
    for (int a = nc.length-1; a >=0 ; a--) 
    rstr += nc[a]; 

    System.out.println(rstr); 

    }
      

  4.   

    StringBuffer s = new StringBuffer("abcd").reverse(); 
    这个也可以:public class Reverse{
    public static void main(String[]args){
    String s="abcd"; 
    String rs=""; 
    for(int i=s.length()-1;i>=0;i--) 

        rs+=s.charAt(i); 

    System.out.println(rs);
    }
    }
      

  5.   

    用 char[] 进行交换吧,这样效率更高一些public class Test5 {    public static void main(String[] args) {
            String str = "1234567890";
            System.out.println(reverse(str));
        }
        
        public static String reverse(String str) {
            if(str == null || str.length() < 2) {
                return str;
            }
            char[] chs = str.toCharArray();
            for(int i = 0, k = chs.length / 2; i < k; i++) {
                char c = chs[i];
                chs[i] = chs[chs.length - i - 1];
                chs[chs.length - i - 1] = c;
            }
            return new String(chs);
        }
    }
      

  6.   

    第二种写法只执行一次,在a的值与nc.length相等时候