import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int i;
String A=sc.next();
String B= "";
/* Enter your code here. Print output to STDOUT. */
for(i=A.length()-1;i<=0;i--){
B = B+A.charAt(i);
}
if(A.equals(B)){
System.out.println("Yes");
}
else{
System.out.println("No");
}
}
}
我的代码没有得到所需的输出。我是个Java初学者。
你的程序没有给你想要的输出的原因是你的for-loop不正确。
for(i.A.length()-1; i <= 0; i--) {/.../}
你基本上是说,当 i 小于或等于 0 时,执行循环。
你可以用多种方法来实现回环检查。2个例子。
例子1使用for-loop:
String A = "radar";
String B = "";
for(int i = A.length()-1; i >= 0; i -- ){
B = B + A.charAt(i);
}
System.out.println(A.equals(B) ? "Yes" : "No");
例2使用StringBuilder.
String A = "radar";
StringBuilder B = new StringBuilder(A).reverse();
System.out.println(A.equals(B) ? "Yes" : "No");
你不断地得到 "No "的输出,因为你在每个循环中检查i是否小于或等于0,而你应该检查大于或等于。
改变 for (i = A.length() - 1; i <= 0; i--)
到
for (i = A.length() - 1; i >= 0; i--)
只要条件成立,for循环就会运行,在你的例子中,你的条件是 i<=0
.除非输入的长度为0,否则这个条件永远不会成立,因此for循环的主体永远不会被执行,你会立即跳到 if(A.equals(B))...
始终 false
(除了输入 ""
).它应该是 i>=0
.