需要逻辑解释 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"));
不使用字符串函数的反串问题
我没有得到内部 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"));