gpt4 book ai didi

Java 回文检查器 - 不区分大小写

转载 作者:行者123 更新时间:2023-12-02 03:22:49 26 4
gpt4 key购买 nike

我目前正在尝试用 Java 编写一个不区分大小写的回文检查器。我检查了其他主题,但似乎没有一个主题能解决我的问题。

这是我的代码:

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”这样的字符串时,输出不正确,因为该字符串没有被报告为回文。该问题似乎与空格相关,因为如果同一字符串中没有空格,则该字符串会被正确报告为回文。我真的很想了解这段代码的缺陷,非常感谢任何帮助!

最佳答案

使用console.nextLine()而不是console.next()

默认情况下,console.next() 仅收集下一个以空格分隔的标记,因此当您输入“Os SO”时,它实际上仅将“Os”存储到String s 变量。

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

关于Java 回文检查器 - 不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39400265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com