gpt4 book ai didi

java - 在单词列表中查找回文

转载 作者:行者123 更新时间:2023-12-01 04:44:58 25 4
gpt4 key购买 nike

我正在开发一个 Java 程序,研究如何查找嵌入在单词列表文件中的回文列表。我正在学习 Java 类(class),因此我们将不胜感激任何类型的帮助或指导!

这是我到目前为止的代码:

import java.util.Scanner;
import java.io.File;

class Palindromes {

public static void main(String[] args) throws Exception {
String pathname = "/users/abrick/resources/american-english-insane";
File dictionary = new File(pathname);
Scanner reader = new Scanner(dictionary);
while (reader.hasNext()) {
String word = reader.nextLine();
for (int i = 0; i > word.length(); i++) {
if (word.charAt(word.indexOf(i) == word.charAt(word.indexOf(i)) - 1) {
System.out.println(word);
}
}
}
}
}

我正在导入的列表中有 3 个单词的长度为 7 个字母或更长。

最佳答案

您有几种方法可以解决这个问题。

在以下情况下,单词被视为回文:

  • 可以按照与向前相同的方式向后阅读。
  • 第一个元素与最后一个元素相同,直到到达中间。
  • 单词的一半与另一半相同,相反。
  • 长度为 1 的单词通常是回文。

最终,您的方法并没有做太多的事情。事实上,您根本没有进行任何验证 - 仅当第一个和最后一个字符匹配时才打印单词。

这里有一个建议:让我们读取字符串的每一端,看看它是否是回文。我们必须考虑到它可能为空或长度为 1 的情况。我们还希望删除字符串中的任何空格,因为这可能会导致验证错误 - 我们使用 replaceAll("\\s", "")来解决这个问题。

 public boolean isPalindrome(String theString) {
if(theString.length() == 0) {
throw new IllegalStateException("I wouldn't expect a word to be zero-length");
}
if(theString.length() == 1) {
return true;
} else {
char[] wordArr = theString.replaceAll("\\s", "").toLowerCase().toCharArray();
for(int i = 0, j = wordArr.length - 1; i < wordArr.length / 2; i++, j--) {
if(wordArr[i] != wordArr[j]) {
return false;
}
}
return true;
}
}

关于java - 在单词列表中查找回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005295/

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