我似乎无法确定我的代码出了什么问题。在阅读了 String 类之后,我尝试用更短的代码向后打印回文,但除了换行符的执行之外,我在控制台上什么也没有得到。 我认为问题可能出在 for 语句中的条件表达式上,因为当我使用“i <= l && i > -1”并使用 System.print(i +"") 对其进行调试时,我得到了从 17 到 0 的数字列表。那么当前表达式可能有什么问题,为什么我不能使用“i < l && i > -1”?因为我打算使用 16 到 0 之间的数字来代替,这是否有什么非法之处?
public class StephenWork
{
private String objString ;
private int index;
private void makeString ( String objString)
{
this.objString = objString;
}
private char[] printBackwards ()
{
int length = objString.length();
char [] backwards = new char [length];
for (index = length ; index < length && index > -1 ; index-- )
{
backwards [index] = objString.charAt(index);
}
return backwards;
}
public static void main (String ... args)
{
String palindrome = "tod saw I was dot";
int l = palindrome.length();
char [] backwards = new char [l];
for ( int i = l; i < l && i > -1 ; i-- )
{
//System.out.println(i); //I was using this to debug the value of i
backwards [i] = palindrome.charAt(i);
}
String printPalin = new String (backwards);
System.out.println(printPalin);
StephenWork example = new StephenWork ();
example.makeString("I love Java");
System.out.println( example.printBackwards());
}
}
最佳答案
Index 设置为与 length 相同的值,因此循环不会执行,因为条件最初为 false。
关于java - for循环中的条件表达式未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25539141/