有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从文件中的多行中查找回文

我想问一下如何从文件中的多行中查找回文(句子-从单词集合中构建回文短语)

例如,文件的结构如下所示

太多了
文本
热的
文本

文本
叫声

输出应该太热而不能发出嘘声,但我不知道如何以这种方式实现它

我创建了一个简单的函数来查找单个回文,如果您能帮助我改进它,我将非常高兴

public static boolean findPalindrome(String s) {
int low, high;
low = 0;
high = s.length() - 1;
while (low < high) {
    if (s.charAt(low) != s.charAt(high)) {
        return false;
    }
    low++;
    high--;
}
return true;

我使用nextLine()方法从文件中加载单词

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    我可以告诉你如何反转String来确定它是否是回文。我不知道如何根据你的要求有效地构建一个回文短语。要反转字符串,请将原始String传递给StringBuilder构造函数,并使用其reverse方法反转字符串:

      String str = "word";
      StringBuilder buff = new StringBuilder(str);
      boolean isPalindrome = str.equalsIgnoreCase(buff.reverse().toString());
    

    如果原始字符串和反向字符串相等,则该单词为回文。你必须弄清楚如何构建这个短语

    要“暴力破解”,你必须抓取一个单词,并在文件中查找所有以相同字母结尾的单词,而不是关键字开头的单词。然后,你需要抓取第二个字母,并从列表中删除在新位置没有匹配字母的单词。然后你必须弄清楚如何获得更多的单词,等等。我不知道如何继续。但基本上,你必须抓取一个单词,然后与文件中的其他单词逐个进行比较,直到你用完文件中的所有单词。如果言之有物,情况可能不会太糟。但是,如果单词不符合顺序,你必须重新排列单词,然后再试一次