我创建了一个用于反转字符串输入的方法,但它一直给我错误并告诉我将方法返回类型更改为char。不明白为什么。有人知道怎么修这个东西吗?我包括错误的屏幕截图
public String reverse(String text) {
String reverse = " ";
for(int i = text.length() -1; i >= 0; i--) {
reverse = text.charAt(i);
}
return reverse;
}
答案 0 :(得分:1)
你必须把这些字符连在一起:
public static String reverse(String text) {
String reverse = "";
for (int i = text.length() - 1; i >= 0; i--) {
reverse += text.charAt(i);
}
return reverse;
}
您也可以使用
public static String reverse(String text) {
return new StringBuilder(text).reverse().toString();
}
答案 1 :(得分:1)
public String reverse(String text) {
String reverse = "";
for (int i = text.length() -1; i >=0; i--) {
reverse+=text.charAt(i);
}
return reverse;
}
答案 2 :(得分:0)
您收到此错误是因为charAt(index)
基本上会返回指定索引处的char
值。
在您的代码text.charAt(i)
中,您会返回char
值,并将其分配给String
。
相反,您可以使用:
reverse += String.valueOf(text.charAt(i));
仅供参考:您还可以使用以下一行代码反转字符串text
:
new StringBuilder(text).reverse().toString();
答案 3 :(得分:0)
你可以用这种方式使用递归来反转String
String reverse(String str){
return (str.length()==1)?str:reverse(str.subString(str,1));
}
答案 4 :(得分:0)
此代码效果很好..
public class reversestring {
public static String reversestring(String string) {
String reverse = new StringBuffer(string).
reverse().toString();
return reverse;
}
public static void main(String[] args){
String string="abcdef";
System.out.println("String after reverse:" +reversestring(string));
}
}
反向后的字符串:fedcba
这应该有帮助..
现在回答你的具体疑问......
java字符串charAt()方法返回给定的char值 索引号。索引号从0开始。
示例强>
public class Solution{
public static void main(String args[]){
String name="StackExchange";
char ch=name.charAt(4);//returns the char value at the 4th index
System.out.println(ch);
}}
输出 k ..
这就是charAt()的工作原理。你不能指望它返回字符串。
快乐学习!
答案 5 :(得分:0)
你做得很好,只是for循环中的一个小错误。你只需要将每个字符串添加回保留字符串,而不是重新分配als @barakmanos已经强调,你的代码是完美的只需做一点改变就可以了。
更改此内容 - >> reverse = text.charAt(i);
到此----->>>> reverse += text.charAt(i);
只是继续将字符添加回保留而不分配给字符串 因为你不能通过将字符串赋值给字符串来将char转换为字符串。