-4

我想在没有任何功能的情况下将反转的字符串 a 存储在 b 中。

公共静态无效主要(字符串参数[]){

  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 个错误

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

4

5 回答 5

4

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

但是您不能这样做,因为字符串是不可变的:您应该使用字符串以外的其他结构,例如StringBuilder,它专门设计用于允许有效地附加字符串构建:

  StringBuilder b = new StringBuilder();
  for(int x=0,y=a.length()-1;x<a.length();x++,y--) {
         b.append(a.charAt(y));
  }
于 2012-10-23T16:19:23.840 回答
3

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

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

sb.toString(); //if you want the result as a string
于 2012-10-23T16:29:27.883 回答
0

b在开头初始化为:String b = "";

然后简单地替换

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

 b= b+ a.charAt(y); 

这将在b

于 2012-10-23T16:23:06.203 回答
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);
}
于 2012-10-23T16:23:51.547 回答
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 建议的那样。

于 2012-10-23T16:28:29.803 回答