【问题标题】:Print couple of Palindromes out of a user input [duplicate]从用户输入中打印几个回文[重复]
【发布时间】:2020-02-04 18:21:11
【问题描述】:

我想从用户输入中打印几个词, 例如那句话:“我们爱妈妈和爸爸” 该程序将打印“妈妈爸爸” 我不知道如何打印这些词。只是字符 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);
}

}

【问题讨论】:

  • 你刚才不是问那个问题吗:stackoverflow.com/questions/60059612/…
  • 不,因为它不是回文。就一个字
  • @TalOuzan 这个问题包括几个步骤:1) 将一个句子分解成单个单词,2) 测试每个单词看它是否是回文,3) 如果它是一个回文,则打印出整个单词回文。现在看起来你并没有真正做任何这些事情。第一步是将句子分解成单词。所以从那开始,看看你能不能完成它。然后从那里继续前进。

标签: java string palindrome


【解决方案1】:

您可以拆分任务:

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

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

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);
}

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 2017-07-06
      • 1970-01-01
      • 2018-11-19
      相关资源
      最近更新 更多