我在Java中的拼写程序没有得到输出。

问题描述 投票:-1回答:3
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初学者。

java arrays loops palindrome system.out
3个回答
1
投票

你的程序没有给你想要的输出的原因是你的for-loop不正确。

for(i.A.length()-1; i <= 0; i--) {/.../}

你基本上是说,当 i 小于或等于零时,执行循环。

enter image description here

你可以用多种方法来实现回环检查。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");

0
投票

你不断地得到 "No "的输出,因为你在每个循环中检查i是否小于或等于0,而你应该检查大于或等于。

改变 for (i = A.length() - 1; i <= 0; i--)

for (i = A.length() - 1; i >= 0; i--)

0
投票

只要条件成立,for循环就会运行,在你的例子中,你的条件是 i<=0.除非输入的长度为0,否则这个条件永远不会成立,因此for循环的主体永远不会被执行,你会立即跳到 if(A.equals(B))... 始终 false (除了输入 "").它应该是 i>=0.

© www.soinside.com 2019 - 2024. All rights reserved.