Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何比较反向输入和原始输入?_Java - Fatal编程技术网

Java 如何比较反向输入和原始输入?

Java 如何比较反向输入和原始输入?,java,Java,我正在试着调试我的程序,这样它就可以把句子作为可能的回文。现在它只告诉我一个单词的倒序是回文,但它总是告诉我一个句子不是回文,即使它是 我曾尝试将original.equals(reverse)更改为reverse.equals(original),但仍然得到相同的输出 import java.util.Scanner; public class WordPlay { public static void main(String [] args) { // Variable d

我正在试着调试我的程序,这样它就可以把句子作为可能的回文。现在它只告诉我一个单词的倒序是回文,但它总是告诉我一个句子不是回文,即使它是

我曾尝试将original.equals(reverse)更改为reverse.equals(original),但仍然得到相同的输出

import java.util.Scanner;

public class WordPlay {
    public static void main(String [] args) {
    // Variable declarations
    String original, reverse = "";
    boolean lipE = true;
    boolean lipS = true;
    boolean palindrome = true;
    boolean alliteration = true;

    // Scanner object
    Scanner input = new Scanner(System.in);
    System.out.print("Please enter a sentence: ");
    original = input.nextLine();
    original = original.toLowerCase();
    System.out.println("The input that you entered was: " + original);


    // Determine whether a input is a lipogram
    for(int i = 0; i < original.length(); i++)
       if(original.charAt(i) == 'e' || original.charAt(i) == 'E' )
          lipE = false;
    if(lipE) {
      System.out.println("The input is a lipogram. ");
    }
    else {
      System.out.println("The input is not a lipogram avoiding the 
letter E.");
    }


    // Determine whether a input is a lipogram
    for(int i = 0; i < original.length(); i++)
       if(original.charAt(i) == 's' || original.charAt(i) == 'S' )
          lipS = false;
    if(lipS) {
      System.out.println("The input is a lipogram. ");
    }
    else {
      System.out.println("The input is not a lipogram avoiding the letter S.");
    }
    // Determine whether or not an input is a palindrome.
    // Compare the original input to the reversed input.
    double length = original.length();
    for (int i = original.length() - 1; i >= 0; i--)
         reverse = reverse + original.charAt(i);

      if (original.equals(reverse))
         System.out.println("The input is a palindrome.");
      else
         System.out.println("The input isn't a palindrome.");
import java.util.Scanner;
公共课堂文字游戏{
公共静态void main(字符串[]args){
//变量声明
字符串原件,反面为“”;
布尔lipE=true;
布尔唇=真;
布尔回文=真;
布尔头韵=真;
//扫描对象
扫描仪输入=新扫描仪(System.in);
系统输出打印(“请输入句子:”);
original=input.nextLine();
original=original.toLowerCase();
System.out.println(“您输入的输入是:“+原件”);
//确定输入是否为脂肪图
对于(int i=0;i=0;i--)
反向=反向+原始字符(i);
如果(原始等于(反向))
System.out.println(“输入是回文。”);
其他的
System.out.println(“输入不是回文。”);

预期的结果是,程序将识别出当一个句子被翻转并等于相同的东西时,它将打印“输入是回文”

您的输入字符串是什么?输入字符串是用户输入的任何内容,输入的变量是原始的。只需发布一个输入,我们就可以了解您认为程序没有按预期方式运行的原因。否则,问题是Unclerarit确实不是回文,您忽略了空格。反之亦然
ris-etov-ot-esir
不等于
rise-to-vote-sir
您应该首先删除空格:
original=original.toLowerCase().replace(“,”);