通过字符串类本身反转字符串

时间:2012-04-06 16:29:12

标签: java

我有一个字符串让我们说“saral”。我想扭转这个字符串。 如何通过字符串类本身来完成?

不是通过字符串缓冲区或字符串构建器,而是仅通过字符串类。

2 个答案:

答案 0 :(得分:3)

您可以使用递归函数,例如:

public static String reverse(String in) {
   int pos = in.length() - 1;
   return pos == -1 ? "" : in.substring(pos) + reverse(in.substring(0, pos));
}

答案 1 :(得分:1)

没有简单有效的方法,因为Java字符串是不可变的,并且它们不提供reverse()方法。但您可以通过以相反的顺序迭代目标字符串并将字符前置为新字符串来构建反向字符串:

public static String reverse(String source) {
  String target = "";
  for (int i=0; i<source.length(); i++) {
    target = source.charAt(i) + target;
  }
  return target;
}

请注意,这是非常低效的,因为字符串连接(通过+运算符)实际上会在引擎盖下创建一个StringBuffer,所以你要分配一堆临时对象。

相关问题