【问题标题】:I'm not getting output for my palindrome program in Java我没有在 Java 中获得回文程序的输出
【发布时间】:2020-05-22 16:59:01
【问题描述】:
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.... 输入:女士 输出:否
  • 请编辑您的问题以解释您得到什么输出以及您想要什么输出。

标签: java arrays loops palindrome system.out


【解决方案1】:

您的程序没有为您提供所需输出的原因是您的 for 循环不正确。

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

您基本上是在说,当 i 小于或等于零时,执行循环。 i 默认大于 0。

您可以通过多种方式实现回文检查。 2 个例子。

使用for循环的示例1:

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");

使用 StringBuilder 的示例 2。

String A = "radar";
StringBuilder B = new StringBuilder(A).reverse();

System.out.println(A.equals(B) ? "Yes" : "No");

【讨论】:

    【解决方案2】:

    您不断得到“否”的输出,因为您在每个循环中检查 i 是否小于或等于零,而您应该检查是否大于或等于。

    更改for (i = A.length() - 1; i &lt;= 0; i--)

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

    【讨论】:

      【解决方案3】:

      只要条件成立,for 循环就会运行,在您的情况下为 i&lt;=0。 除非输入的长度为 0,否则此条件永远不会成立,因此 for 循环的主体永远不会执行,您会立即跳到 if(A.equals(B))...,它始终是 false(输入 "" 除外)。 应该是i&gt;=0

      【讨论】:

        猜你喜欢
        • 2021-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2017-09-27
        • 2016-04-23
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多