当前位置: 首页 > 知识库问答 >
问题:

Java回文检查器-不区分大小写[重复]

上官和韵
2023-03-14
import java.util.Scanner;

public class Homework5_2 {
    public static void main(String[] args) {
        boolean flag = true; //palindrome or not
        Scanner console = new Scanner(System.in);
        System.out.print("Enter one or more words: ");
        String s = console.next();

        //checks if string contains spaces
        if (s.matches(".*\\s+.*")) {
            s = s.replaceAll("\\s+","");
        }

        s = s.toLowerCase();
        int stringLength = s.length();
        int index = 0;

        //checks the string from both sides going towards the middle
        for (int i=0;i<stringLength/2;i++) {
        index = stringLength-i-1;
        if (!(s.charAt(i) == s.charAt(index))) {
            flag = false;
            }
        }

        if (flag == true) {
            System.out.println("The string is a palindrome!");
        } else {
           System.out.println("The string is not a palindrome!");
        }
    }   
}

当输入像“os so”这样的字符串时,输出不正确,因为该字符串没有作为回文报告。这个问题似乎与空格有关,因为如果相同的字符串中没有空格,它将正确地作为回文报告。我真的有兴趣了解这个代码的缺陷,任何帮助都将非常感谢!

共有1个答案

雍阳
2023-03-14

使用console.nextline()代替console.nextline()

默认情况下,console.next()只收集下一个空格分隔的标记,因此当您输入“os so”时,实际上只是将“os”存储到字符串的变量中。

在检查回文方面,反向字符串并检查反向字符串是否等于原始字符串要容易得多,而不是使用索引来检查字符串中的每个单独字符。

 类似资料:
  • 问题内容: 我想编写一个Java方法,如果字符串是回文,则返回true。 这是我到目前为止的内容: 我的问题是,它不考虑像这样的单词:回文。 在不区分大小写并忽略标点符号的情况下,测试这是否是回文式的最佳方法是什么。 问题答案: 使用此正则表达式删除所有标点和空格并将其转换为小写

  • 如何在Java中以区分大小写的方式进行匹配?我的意思是,我想编写一个类似的regex。但是我想匹配以及等等。在Java中最简单的方法是什么?

  • 对于报告(0.1%的所有查询),我需要返回一个所有可能类别的列表,区分大小写! 考虑以下文件: 运行以下查询: 返回: 是否有方法返回区分大小写的类别(存储在文档中)?我对此查询结果中的感兴趣。 Elasticsearch论坛中的问题 谢谢,伊泰

  • 我正在构建一个Spring Boot REST API。它有一个POST请求,用于将大型对象保存到Mongo数据库。我试图使用枚举来控制数据存储方式的一致性。例如,这是我对象的一部分: 我的问题:当我传入一个不是我的枚举的大写版本的值(例如“mobile”或“Mobile”)时,我得到以下错误: 我觉得应该有一种相对简单的方法来获取传递到API中的内容,将其转换为大写字母,将其与枚举进行比较,如果

  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut