从用户输入中打印几个回文

Print couple of Palindromes out of a user input

我想从用户输入中打印出几个词, 例如那句话:“我们爱爸爸妈妈” 该程序将打印 "mom dad" 我不知道如何打印这些词。只有字符 m 和 d。 非常感谢 ! 这是我的代码:

        Scanner s = new Scanner(System.in);
    System.out.println("Please enter a Sentence");
    String input = s.nextLine();
    String output = "";
    for (int i = 0, j = 0; i < input.length(); i++) {
        if (input.charAt(i) == ' ') {
            j = i + 1;
        }
        if (j < i && input.charAt(j) == input.charAt(i)) {
             output=output+(input.charAt(i);
        }
    }
    System.out.println(output);
}

}

下面是我将如何解决这个问题。

  1. 按空格拆分字符串(假设您不需要担心标点符号)
  2. 使用 StringBuilder 遍历通过拆分和反转所有字符串获得的数组。 (将这些反向字符串保存在一个新数组中)
  3. 最后,使用双 for 循环遍历两个数组,比较反转数组和原始数组中的字符串。如果一个词是相同的,它就是一个回文,你可以打印它或者用它做任何事情。

您可以拆分任务:

  1. 创建检查字符串是否为回文的方法。 Examples
  2. 将输入行拆分为 space 并循环检查每个字符串是否为回文。打印或存储,您必须选择:

使用串联将结果保存在字符串中。

String input = s.nextLine();
String result = "";
for(String word : input .split(" ")) {
    if(isPalindrome(word))
        result += word + " ";
}

在ArrayList中保存回文词。

String input = s.nextLine();
List<String> words = new ArrayList<>();
for(String word : input .split(" ")) {
    if(isPalindrome(word))
        list.add(word);
}