作用 是把输入的字符 反序排列出来
S为我输入的String
问题是,当我执行后,结果永远无法改变。永远等于初始的“”。很奇怪。请帮忙看看!
================code start=============================
public static String reverse(String s) 
    {
        String result="";
        int n=s.length();
        
        for(int currentNumber=n ;currentNumber>n;currentNumber--)
        {
            result+=s.substring(currentNumber,currentNumber+1);
        }
            
        return result; 
    }
====================code End=========================== 

解决方案 »

  1.   

    for(int currentNumber=n ;currentNumber>n;currentNumber--) 

    for(int currentNumber=n ;currentNumber>0;currentNumber--) 循环体没进去
      

  2.   

    哈哈。程序员设计程序首先要细心些:
    1)
    int n=s.length(); 
    改为:int n=s.length()-1; 
    2)
    for(int currentNumber=n ;currentNumber>n;currentNumber--) 
    改为:
    for(int currentNumber=n ;currentNumber>=0;currentNumber--) 其实方法可以写成:public static String reverse(String s)  
        { 
           return new StringBuffer(s).reverse().toString(); 
        } 
    就行了。
      

  3.   

    String是不能改变的,你的result看起来是改变了,实际上是另外分配了空间,然后放进去,但是你最后打印result,其实还是你以前那个result,所以并没有改变。
    用StringBuffer就好了,这个是可以改变的