我有一个问题要问你。 因此,我必须根据此要求反转字符串:
- 仅使用:1 个变量字符串(用于输入),1 个变量 char 和 1 个变量 int
- 不能使用其他字符串、字符串生成器、列表、数组或集合
- 输出结果分配给输入变量
- 输入变量的长度不能增加
- 不能使用函数子串
然后我试试这个,这是正确的吗?
String str = "Hello World";
System.out.println("Before : "+str);
for(int i=0;i<str.length();i++){
str = new String(str.getBytes(), 1, str.length()-1-i) + new String(str.getBytes(), 0, 1) + new String(str.getBytes(), str.length()-i, i);
System.out.println(str);
}
System.out.println("After : "+str);
输出:
之前: Hello World
Hello World
我爱世界
世界观
世界观
世界观
世界观
世界观
rldoW olleH
ldroW olleH
dlroW olleH
dlroW olleH
之后:dlroW olleH
最佳答案
你可以对任务使用递归,像这样:
public static String reverse(String source, int from) {
if (source.length()-from == 1) {
return source.charAt(from)+"";
}
return reverse(source, from+1) + source.charAt(from);
}
关于JAVA - 没有临时字符串、数组、Stringbuilder、子字符串的反向字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29050310/