需要逻辑解释 java 反转字符串

Needs Logic explanation java reverse string

不使用字符串函数的反串问题 我没有得到内部 for 循环为什么 s.length()-1 ?为什么 -1 ? 它与多维数组有关吗?

char ch[]=new char[s.length()];
for(i=0;i < s.length();i++)
    ch[i]=s.charAt(i);
for(i=s.length()-1;i>=0;i--)
    System.out.print(ch[i]);

找到此代码但

Java 字符串的索引从 0 到字符串的长度 - 1(就像 Java 数组的索引从 0 开始,字符串的索引也是如此) .

因此,为了以相反的顺序打印字符串,第二个循环从 s.length()-1 迭代到 0。在此之前,第一个循环从 0 迭代到 s.length( )-1 以便将字符串的字符复制到字符数组。

这与多维数组无关

我知道您要求迭代解决方案说明。但是,我会给你递归的解释。

public static String reverse(String str) 
{
    if ((str == null) || (str.length() <= 1)) 
        return str;

    return reverse(str.substring(1)) + str.charAt(0);
}

基本上,每次调用函数之前都会检查 str。这称为基本情况,用于在作业完成时停止并且不会出现堆栈溢出。 然后,之后,函数 returns 只是原始函数的一部分。最后,您将得到完全反转的 str 作为迭代解决方案。

尝试使用函数 System.out.println(reverse("hello"));