java - 如何在Java中反转字符串

标签 java string

如何在Java中反转字符串

输入字符串:1234 输出应该:4321

我已经尝试过了。

public static void main(String args[]) 
{ 
 String number = "1234"; 
 System.out.println("original String: " + number); String reversed = inPlaceReverse(number);
 System.out.println("reversed String: " + reversed);
}



public static String inPlaceReverse(final String input) 
{
   final StringBuilder builder = new StringBuilder(input); 
   int length = builder.length();
   for (int i = 0; i < length / 2; i++)
   {
      final char current = builder.charAt(i); 
      final int otherEnd = length - i - 1;
      builder.setCharAt(i, builder.charAt(otherEnd)); // swap 
      builder.setCharAt(otherEnd, current); 
   }
 return builder.toString(); 
}

我得到的答案如下: 反转字符串:4231,正如我预期的 4321。

最佳答案

如果你的老师想看你的作品,那么你应该直接操作角色。像下面这样的内容应该足以让您发现错误:

public static String reverse(String orig)
{
    char[] s = orig.toCharArray();
    final int n = s.length;
    final int halfLength = n / 2;
    for (int i=0; i<halfLength; i++)
    {
        char temp = s[i];
        s[i] = s[n-1-i];
        s[n-1-i] = temp;
    }
    return new String(s);
}

关于java - 如何在Java中反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44452668/

相关文章:

java - MD5 整个节点以及校验和

java - 安卓工作室 : help RecyclerView Click does not work

java - Java 中的泛型声明差异

java - 单链表转双链表

java - 如果字符串包含大于 Integer.MAX_VALUE 的数字

r - 提取特定格式的部分字符串

java - Netbeans 删除一个内置类?

java - 在 Java 中替换字符串忽略大小写

c - "Program has stopped working"

c - 使用 strcat() 函数时打印字符串之间的空格