存储反转的字符串

时间:2012-10-23 16:18:00

标签: java

我想将反向字符串a存储在b中,没有任何功能。

  

public static void main(String args [])     {

  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  String a=br.readLine();
  String b;
  for(int x=0,y=a.length()-1;x<a.length();x++,y--)
  {
             b.charAt(x)=a.charAt(y);
  }

但是我收到了这个错误:

                   b.charAt(x)=a.charAt(y);
                           ^
     

必需:变量

     

发现:价值

     

1错误

你能解释一下并帮我解决吗?

5 个答案:

答案 0 :(得分:4)

左边是=符号,你必须有一个变量名,而不是表达式。

但你不能这样做,因为字符串是不可变的:你应该使用另一个结构而不是字符串,例如StringBuilder,它特别设计为允许有效追加字符串构建:< / p>

  StringBuilder b = new StringBuilder();
  for(int x=0,y=a.length()-1;x<a.length();x++,y--) {
         b.append(a.charAt(y));
  }

答案 1 :(得分:3)

反转字符串的最简单方法是使用字符串缓冲区,因为它具有内置的反向方法。然后存储String缓冲区,你可以将它保存到这样的变量。

StringBuffer sb = new StringBuffer(a.reverse());

sb.toString(); //if you want the result as a string

答案 2 :(得分:0)

在开头初始化bString b = "";

然后简单地替换

b.charAt(x)=a.charAt(y);

 b= b+ a.charAt(y); 

这将在b

中附加字符

答案 3 :(得分:0)

你可以做到

String a = "hello"; // the String to be reversed
String b = ""; // the String to store the reversed String
for (int i = a.length()-1; i >= 0; i--) {
    b = b+a.charAt(i);
}

答案 4 :(得分:0)

你也可以按如下方式反转它的char数组:

char[] chars = input.toCharArray();

for(int i=0; i<chars.length/2; i++) {
    char temp = chars[i];
    chars[i] = chars[chars.length - i - 1];
    chars[chars.length - i - 1] = temp;
}

String reversed = String.valueOf(chars);

但请注意,无论你选择什么,你都不会修改字符串本身,因为字符串是@dystroy建议的不可变的。