【问题标题】:how to count the number of words of the same(PALINDROME) in java如何在java中计算相同(PALINDROME)的单词数
【发布时间】:2012-12-20 17:08:07
【问题描述】:

我是一名 Java 开发新手。我想编写代码来使用 Java 计算段落中回文词的数量。
假设是:用户可以输入包含尽可能多的句子的段落。每个单词用空格隔开,每个句子用句点隔开,单词前后的标点将被忽略,而单词内部的标点将被计算在内。
示例输入:Otto goes to school. Otto sees a lot of animals at the pets store.
示例输出:Otto = 2 a = 1 Sees = 1

【问题讨论】:

  • 是的,现在是所需的输出和what you have tried。而且 - 我差点忘了 - 欢迎来到 SO!
  • 作为一个新手更应该尝试解决问题,编写一些代码,然后在出现特定问题时寻求帮助。只是在这里发布问题以获得现成的答案并不能帮助您从新手毕业成为专业开发人员

标签: java palindrome


【解决方案1】:

将文件读入您​​的程序,在每个空格处拆分条目并将它们输入到数组列表中。之后,将回文算法应用于数组列表中的每个值,并跟踪作为回文的单词及其出现(例如,二维数组,或包含两个值的对象的数组列表)。

当您完成这些步骤后,您应该就差不多了。一旦您展示了自己的尝试,可能会提供更具体的帮助。

【讨论】:

    【解决方案2】:

    在java中使用集合将减少编程工作

    算法:

    1. 将段落读入字符串变量

    2. 使用StringTokenizer拆分字符串,使用标记作为''(空格)并将每个单词添加到ArrayList(设置不允许重复)

    3. 编写一个方法,根据给定字符串是否为回文返回布尔值 (TRUE/FALSE)。

    4. 定义一个 Map 来保存回文字符串的值及其重复次数。

    5. 如果是 将字符串添加到 Map 中,键为回文字符串,值为次数 别的 不要将字符串添加到地图

    6. 重复同样的逻辑,直到所有单词都说完

    示例代码:

    ` 公共类 StringPalindromeCalculator {

       private Map<String, int> wordsMap = new HashMap<>();
       private List<String> wordsList = new ArrayLiat<>();
    
       private boolean isPalindrome(String inputString) {
          // write String palindrome logic here
       }
    
       public Map<String, int> findPalindromeWords(String completeString) {
           StringTokenizer wordTokenizer = new StringTokenizer(completeString, ' ');
           while(wordTokenizer.hasMoreTokens()) {
                wordsList.add(wordTokenizer.nextToken());
           }
           for(String word : wordsList) {
                if(isPalindrome(word)) {
                     if(wordsMap.containsKey(word)) {
                          // increment the value of word
                     }
                } else {
                        // put the word into Map and return the map value 
                }
    
           }
           return wordsMap;
       }  
    

    }`

    希望这会有所帮助:)

    【讨论】:

      【解决方案3】:

      公共类回文{

      int count = 0;
      
      public static void main(String[] args) {
          String a = "malayalammadyoydaraarasdasdkfjasdsjhtj";
          Palindrome palindrome = new Palindrome();
          palindrome.countPalin(a);
      }
      
      private int countPalin(String str) {
          for (int i = 0; i < str.length() - 1; i++) {
              char start = str.charAt(i);
              String st = "";
              st += start;
              for (int j = i + 1; j < str.length(); j++) {
      
                  st += str.charAt(j);
      
                  StringBuffer rev = new StringBuffer(st).reverse();
                  if (st.equals(rev.toString()) && st.length() > 1) {
                      System.out.println(st.toString());
                      count++;
                  }
              }
      
              st = "";
          }
      
          System.out.println("Total Count : " + count);
      
          return count;
      }
      

      }

      【讨论】:

      • 这个程序将给出给定单词中可能的 Palindorme 的计数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      相关资源
      最近更新 更多