【问题标题】:how to count words in a string having special characters [closed]如何计算具有特殊字符的字符串中的单词[关闭]
【发布时间】:2021-04-28 05:28:45
【问题描述】:

我必须计算字符串中的单词数(你好,怎么样?你是 Akanksha-Mishra 吗?),所以答案是 4。因为不考虑包含特殊字符的单词,并且认为由连字符连接的单词成为一个词。那么,我该怎么做呢。

【问题讨论】:

    标签: java string


    【解决方案1】:

    如果每个特殊字符都可能出现在单词的末尾并且会被计数(例如您的示例中的“如何?”) - 我建议如下:

        public static void main(String[] args) {
                int counter = 0;
    
                Pattern pattern = Pattern.compile("[a-zA-Z]+[^A-Za-z]*");
                //String string = "blah blah-blah bla*h";
                String string = "hello how? are y*ou Akanksha-Mishra?";
    
                string = string.replace("-","");
                String[] words = string.split(" ");
                for (String word: words) {
                    Matcher matcher = pattern.matcher(word);
                    if (matcher.matches()) {
                        counter++;
                    }
                }
        
                System.out.println(counter);
            }
        }
    

    如果您需要额外的解释,请告诉我。

    【讨论】:

      【解决方案2】:

      如果您想用 Java 编写代码,可以这样做:

          public class CountSpecCharacter    
          {    
          public static void main(String[] args) {    
              String string = "hello how? are y*ou Akanksha-Mishra?";    
              int count = 0, spec = 0;
              for(int i = 0; i < string.length(); i++) {  
                  if ((string.charAt(i)>64 && string.charAt(i)<=122) || string.charAt(i) == 32) 
                  {    
                      count++;
                  }      
              }     
              spec = string.length() - count;
              System.out.println("Number of Special Characters: " + spec);    
          }    
      } 
      

      在这里,我实现了一个 for 循环,用于计算字符串中的字符数,包括空格。 然后将该数字减去字符串的总长度,以找出特殊字符的数量。

      【讨论】:

      • 实际上我必须计算中间没有任何特殊字符或任何数字的单词的数量。请为相同的@neeltron 提供帮助
      • 在这种情况下,您可以将单词提取到一个数组中,然后您可以使用我的代码过滤掉包含特殊字符的单词。以下是将字符串转换为数组的方法:stackoverflow.com/questions/4674850/…
      【解决方案3】:

      您可以遍历每个字符并检查它们的顺序,例如 A 有 65,Z 有 92。您可以检查字符的顺序是否在一个范围内,如果他们知道它们是简单的字母,其他特殊字符.

      【讨论】:

        猜你喜欢
        • 2021-05-10
        • 2020-08-13
        • 2020-06-06
        • 1970-01-01
        • 1970-01-01
        • 2020-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多