Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Reverse_Do While_Palindrome - Fatal编程技术网

Java 用于字符串输入和反转的循环

Java 用于字符串输入和反转的循环,java,loops,reverse,do-while,palindrome,Java,Loops,Reverse,Do While,Palindrome,我试图接收一个字符串,切掉第一个字母,将其放在字符串的末尾,并将其与原始输入进行比较。对于某些词来说,它起作用,而另一些词则不起作用。我不确定这是否是循环的问题还是什么 import java.util.*; public class Palin{ public static void main(String args[]) { String original,input; Scanner sc=new Scann

我试图接收一个字符串,切掉第一个字母,将其放在字符串的末尾,并将其与原始输入进行比较。对于某些词来说,它起作用,而另一些词则不起作用。我不确定这是否是循环的问题还是什么

import java.util.*;
    public class Palin{

        public static void main(String args[])
        {
          String original,input;
          Scanner sc=new Scanner(System.in);

          System.out.println("Enter word and I will tell you if it has the property of a palindrome: ");
          original = sc.nextLine();
          char firstLetter = original.charAt(0);
          input = original.substring(1);
          input = input + firstLetter;
          StringBuilder input2=new StringBuilder(input).reverse();
          String s2=new String(input2);

          do{

            if(original.equals(s2))
                System.out.println(original + " is a Palindrome");
            else
                System.out.println(original + " is not a Palindrome");
                System.out.println("Enter another word. Or enter \"quit\" to end");
                original = sc.nextLine();
            } while (!(original.equalsIgnoreCase("quit")));

       }

}

如果只想检查字符串是否为回文,可以尝试以下操作:

    System.out.println("Enter String");
    Scanner s = new Scanner(System.in);
    String str = s.nextLine();
    StringBuilder sb = new StringBuilder(str);
    String rev = sb.reverse().toString();
    System.out.println(rev);
    if(str.equals(rev)){
        System.out.println("equal");
    }else{
        System.out.println("not equal");
    }

对于字符串的大小写敏感度,请使用字符串API。

我想我只需要清理引用和do的位置即可。谢谢你的帮助

输出

输入word,我将告诉您它是否具有回文属性: 回文的 回文没有回文属性 输入另一个单词。或输入“退出”结束 不均匀的 不均匀具有回文属性 输入另一个单词。或输入“退出”结束 香蕉 香蕉有回文属性 输入另一个单词。或输入“退出”结束 梳妆台 dresser具有回文属性 输入另一个单词。或输入“退出”结束 退出

修订代码如下

导入java.util.*; 公共类佩林{

        public static void main(String args[])
        {
          String original,input;
          Scanner sc=new Scanner(System.in);

          System.out.println("Enter word and I will tell you if it has the property of a      palindrome: ");
          original = sc.nextLine();

        do{

          char firstLetter = original.charAt(0);
          input = original.substring(1);
          input = input + firstLetter;

          StringBuilder input2=new StringBuilder(input).reverse();
          String s2=new String(input2);



            if(original.equals(s2))
                System.out.println(original + " has a Palindrome property");
            else
                System.out.println(original + " does not have a Palindrome property");
                System.out.println("Enter another word. Or enter \"quit\" to end");
                original = sc.nextLine();
            } while (!(original.equalsIgnoreCase("quit")));

       }

}

如果你看一下右边的相关问题,你会找到解决方案。我认为这是你写问题时建议的重复。你实际上是在测试单词是否在第一个字母后是回文。你可以为此编写一个测试。这样会更简单。StringBuilder input2=new StringBuilder(input).reverse();此命令不会反转整个字符串?它适用于哪些单词,不适用于哪些单词?是的,它会反转。但是您已经通过将第一个字符移动到末尾来更改了原始字符串。