JAVA - 没有临时字符串、数组、Stringbuilder、子字符串的反向字符串

标签 java string char substring reverse

我有一个问题要问你。 因此,我必须根据此要求反转字符串:

  1. 仅使用:1 个变量字符串(用于输入),1 个变量 char 和 1 个变量 int
  2. 不能使用其他字符串、字符串生成器、列表、数组或集合
  3. 输出结果分配给输入变量
  4. 输入变量的长度不能增加
  5. 不能使用函数子串

然后我试试这个,这是正确的吗?

  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/

相关文章:

python - 如何修改 Tkinter Text 小部件中的当前选择长度?

c++ - 错误 C2664 char [80] 到 char

我可以在 C 中将 char* 传递给 const char* 吗?

java - 如何在 Minecraft Forge for Minecraft 1.15 中将对象转换为 INBT 类型的 nbt

java - ViewHolder 方法内的 ButterKnife onClick 监听器

java.lang.ClassNotFoundException : Didn't find class ".MainActivity" on path: DexPathList react-native 异常

c++ - 为随机生成的字符串 C/C++ 打印字符,不在随机列表中的字符也被打印

python - 在字符串中使用 len()

c++ - 非成员函数中的隐式参数转换歧义用 std::function 重载?

java:如何解析类似html的xml