代码:
//
//StringReverse.java
//import java.lang.*;public class StringReverse {
        public static void main(String args[]) {
                
                String strOutput = new String(args[0]);
                
                int intLength = strOutput.length();
                int intHalfLength = intLength/2;
                int intLoop;
                char chaTemp;
                int intRight;
                int intLeft;                
                for (intLoop = 0; intLoop < intHalfLength; intLoop++){
                 intRight = intHalfLength + intLoop + 1;
                 intLeft = intHalfLength-intLoop-1;
                 chaTemp = strOutput.charAt(intRight);
                 strOutput.charAt(intRight) = strOutput.charAt(intLeft);
                 strOutput.charAt(intLeft) = chaTemp;
                 }
                
                System.out.println("Your input is: " + args[0]);
                System.out.println("The reversed string is: " + strOutput);
        }
}编译结果:
StringReverse.java:22: 意外的类型
需要: 变量
找到: 值
                        strOutput.charAt(intRight) = strOutput.charAt(intLeft);
                                        ^
StringReverse.java:23: 意外的类型
需要: 变量
找到: 值
                        strOutput.charAt(intLeft) = chaTemp;
                                        ^
2 错误

解决方案 »

  1.   

    java的字符串是不能改的,可以用个char数组试试
      

  2.   

    java语法问题:
                    strOutput.charAt(intRight) = strOutput.charAt(intLeft);
                        strOutput.charAt(intLeft) = chaTemp;
    这两句左边应该是一个变量.
      

  3.   

    我将你代码拷贝过去,Eclispe就对
    strOutput.charAt(intRight) = strOutput.charAt(intLeft);
    strOutput.charAt(intLeft) = chaTemp;
    这两行报如下错误:
    The left-hand side of an assignment must be a variablestrOutput中的某一个字符不是变量。
      

  4.   

    没错,String类的字符串是不可变的,修改后程序如下:
    //
    //StringReverse.java
    //import java.lang.*;public class StringReverse {
            public static void main(String args[]) {
                    
                    String strInput = new String(args[0]);
                    char chaOutput[] = new char[args[0].length()];
                    args[0].getChars(0,args[0].length(),chaOutput,0);
                    
                    int i;
                    char charTemp;
                    for(i = 0; i < args[0].length()/2;i++){
                     charTemp = chaOutput[i];
                     chaOutput[i] = chaOutput[args[0].length()- i - 1];
                     chaOutput[args[0].length()- i - 1] = charTemp;
                    }
                    
                    String strOutput = new String(chaOutput);
                    
                    System.out.println("Your input is: " + args[0]);
                    System.out.println("The reversed string is: " + strOutput);
            }
    }调试结果:...Java>java StringReverse abcdefghijklmnopqrstuvwxyz
    Your input is: abcdefghijklmnopqrstuvwxyz
    The reversed string is: zyxwvutsrqponmlkjihgfedcba多谢各位。
      

  5.   

    改为这样就通过啦!
    import java.lang.*;public class StringReverse {
            public static void main(String args[]) {
                    
                    String strOutput = new String(args[0]);
                    
                    int intLength = strOutput.length();
                    int intHalfLength = intLength/2;
                    char temp[]=strOutput.toCharArray();
                    int intLoop;
                    char chaTemp;
                    int intRight;
                    int intLeft;                
                    for (intLoop = 0; intLoop < intHalfLength; intLoop++)
                    {
                     intRight = intHalfLength + intLoop + 1;
                     intLeft = intHalfLength-intLoop-1;
                     chaTemp = temp[intRight];
                     temp[intRight] = temp[intLeft];
                     temp[intLeft]= chaTemp;
                    }
                    strOutput=new String(temp);
                    System.out.println("Your input is: " + args[0]);
                    System.out.println("The reversed string is: " + strOutput);
            }
    }
    要改变字符串的值要用replace函数,但是感觉不好操作。还是现转为字符数组来操作容易点。
      

  6.   

    String strOutput = new String(args[0]);
    不能用String 要用StringBuffer