我有一个字符串让我们说“saral”。我想反转这个字符串。如何通过字符串类本身来完成?
不通过字符串缓冲区或字符串生成器,而仅通过字符串类。
您可以使用递归函数,例如:
public static String reverse(String in) {
int pos = in.length() - 1;
return pos == -1 ? "" : in.substring(pos) + reverse(in.substring(0, pos));
}
由于 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,因此您分配了一堆临时对象。