在Java中反转字符串 - 给出错误

时间:2016-10-19 07:46:22

标签: java string char reverse

我创建了一个用于反转字符串输入的方法,但它一直给我错误并告诉我将方法返回类型更改为char。不明白为什么。有人知道怎么修这个东西吗?我包括错误的屏幕截图

public String reverse(String text) {
    String reverse = " ";
    for(int i = text.length() -1; i >= 0; i--) {
        reverse = text.charAt(i);
    }
    return reverse;
}

6 个答案:

答案 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转换为字符串。