我想将反向字符串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错误
你能解释一下并帮我解决吗?
答案 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)
在开头初始化b
:String 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建议的不可变的。