iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java如何获取字符串单词个数
  • 241
分享到

Java如何获取字符串单词个数

Java获取字符串Java单词个数Java字符串单词个数 2023-03-01 11:03:46 241人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录Java获取字符串单词个数统计String单词数的三种方法方法一:使用split方法二:使用StringTokenizer方法三:使用原始的char判断总结Java获取字符串单词

Java获取字符串单词个数

 public static int getWordCount(String content){
        int count = 0;
        String cn_words = content.replaceAll("[^(\\u4e00-\\u9fa5,。《》?;'‘:“”【】、)(……¥!·)]", "");
        int cn_words_count = cn_words.length();
        String non_cn_words = content.replaceAll("[^(a-zA-Z0-9`\\-=\';.,/~!@#$%^&*()_+|}{\":><?\\[\\])]", " ");
        int non_cn_words_count = 0;
        String[] temp = non_cn_words.split(" ");
        for(String ch:temp){
            if(ch.trim().length() != 0) non_cn_words_count++;
        }
        count = cn_words_count + non_cn_words_count;
        return count;
    }
    public static void main(String[] args) {
		System.out.println(getWordCount("我爱你 zhanglulu _")); // 输出5,单词是以空格分开,所以这里我爱你三个字加一个单词zhanglulu和一个下划线,空格不算。
	}

统计String单词数的三种方法

统计字符串里包含有多少个单词,这是Java代码常用的场景。介绍三种简单的方法来对其进行统计。这里所谓的单词,是指连续的非空字符串。如“Hello”则为一个词,“I love Guangzhou”则为三个词。

方法一:使用split

在类String中,有split()这个方法,可以将字符进行分割。可以通过对字符串以空白字符进行分割,则可以得到结果。

public int countWithSplit(String str) {
    if (Strings.isNullOrEmpty(str)) {
        return 0;
    }
    return str.split("\\s+").length;
}

代码中"\\s+"为正则表达式,表示所有的空白字符。

方法二:使用StringTokenizer

public int countWithStringTokenizer(String str) {
    if (Strings.isNullOrEmpty(str)) {
        return 0;
    }
    StringTokenizer tokenizer = new StringTokenizer(str);
    return tokenizer.countTokens();
}

StringTokenizer是一个很有用的类,构造函数有三个:

  • 1. StringTokenizer(String str) :构造一个用来解析 str 的 StringTokenizer 对象。java 默认的分隔符是空格("")、制表符(\t)、换行符(\n)、回车符(\r)。
  • 2. StringTokenizer(String str, String delim) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符。
  • 3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。

方法三:使用原始的char判断

public int countWithChar(String str) {
    if (Strings.isNullOrEmpty(str)) {
        return 0;
    }
    int wordCount = 0;
    boolean isWord = false;
    int endOfLine = str.length() - 1;
    char[] chars = str.toCharArray();
 
    for (int i = 0; i < chars.length; i++) {
        // 如果是非空字符, word = true.
        if (isWord(chars[i]) && i != endOfLine) {
            isWord = true;
 
            // 非空字符后遇到空字符,则数量加1
        } else if (!isWord(chars[i]) && isWord) {
            wordCount++;
            isWord = false;
            // 非空字符后遇到行尾
        } else if (isWord(chars[i]) && i == endOfLine) {
            wordCount++;
        }
    }
    return wordCount;
}
 
private boolean isWord(char c) {
    return c != ' '
            && c != '\t'
            && c != '\n'
            && c != '\r'
            && c != '\f';
}

测试代码

简单写了几个测试用例,测试通过。

public class CountWordTest {
    private CountWord countWord = new CountWord();
 
    @Test
    public void test() {
        testStrinGCount(null, 0);
        testStringCount("", 0);
        testStringCount(" ", 0);
        testStringCount(" \t\r\n\f", 0);
        testStringCount("0", 1);
        testStringCount("abcdef", 1);
        testStringCount("a b c", 3);
        testStringCount("a,b,c", 1);
        testStringCount("a\rb\nc", 3);
        testStringCount("a,b\t\nc", 2);
    }
 
    private void testStringCount(String str, int expectedCount) {
        assertEquals(expectedCount, countWord.countWithSplit(str));
        assertEquals(expectedCount, countWord.countWithStringTokenizer(str));
        assertEquals(expectedCount, countWord.countWithChar(str));
    }
}

这三种方法都非常简单,没有什么技术难点,用到了String、StringTokenizer、正则、Guava、JUnit等,非常基础。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Java如何获取字符串单词个数

本文链接: https://www.lsjlt.com/news/197964.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何获取字符串单词个数
    目录Java获取字符串单词个数统计String单词数的三种方法方法一:使用split方法二:使用StringTokenizer方法三:使用原始的char判断总结Java获取字符串单词...
    99+
    2023-03-01
    Java获取字符串 Java单词个数 Java字符串单词个数
  • Java怎么获取字符串单词个数
    今天小编给大家分享一下Java怎么获取字符串单词个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Java获取字符串单词个数...
    99+
    2023-07-05
  • java如何获取字符串的字节数
    在Java中,可以使用getBytes()方法来获取字符串的字节数。这个方法返回一个字节数组,其中包含了字符串的字节表示。示例代码如...
    99+
    2023-09-11
    java
  • java如何统计字符串中的单词数
    这篇文章主要为大家展示了“java如何统计字符串中的单词数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何统计字符串中的单词数”这篇文章吧。如何统计字符串中的单词数这道题呢主要针对的是...
    99+
    2023-06-27
  • java如何获取字符串长度
    这篇文章主要讲解了“java如何获取字符串长度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java如何获取字符串长度”吧!在java中,可以利用String类的length()方法来获取字...
    99+
    2023-06-20
  • 如何在Shell中统计字符串中单词的个数
    这篇文章给大家介绍如何在Shell中统计字符串中单词的个数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。方法一:[linux@host ~]# echo 'one two...
    99+
    2023-06-09
  • php如何反转单词字符串
    本文小编为大家详细介绍“php如何反转单词字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何反转单词字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。php反转单词字符串的方法:1、新建一个php...
    99+
    2023-07-05
  • java怎么反转字符串中的每个单词
    你可以通过以下步骤来反转字符串中的每个单词:1. 将输入的字符串按空格分割为单词数组。2. 遍历单词数组,对每个单词进行反转。3. ...
    99+
    2023-10-18
    java
  • python如何统计字符串每个单词出现的次数
    这篇文章主要介绍python如何统计字符串每个单词出现的次数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!统计字符串每个单词出现的次数。def word_amount(se...
    99+
    2024-04-02
  • java提取字符串中的数字string,获取字符串中的整数或小数
    方法一:提取字符串中的数字 // 提取字符串中的数字 public static String extractNumbers(String input) { return input.replaceAll("[^0-9]...
    99+
    2023-08-16
    java 开发语言 jvm
  • JavaScript如何从字符串中获取字符
    这篇文章主要为大家展示了“JavaScript如何从字符串中获取字符”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何从字符串中获取字符”这篇文章吧。 从字符串中获...
    99+
    2023-06-27
  • java如何在字符串中获取不同的字符及其数量
    小编给大家分享一下java如何在字符串中获取不同的字符及其数量,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如何在字符串中获取不同的字符及其数量这道题可以拆解为两个步骤,第一步,找出不同的字符,第二步,统计出它们的数量。好...
    99+
    2023-06-27
  • js如何获取字符串最后几位字符数
    这篇文章主要为大家展示了“js如何获取字符串最后几位字符数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js如何获取字符串最后几位字符数”这篇文章吧。 js获...
    99+
    2024-04-02
  • java获取字符串的前几位字符
    java如何获取字符串的前几位字符? 方法一:通过subString()方法来进行字符串截取(推荐,我使用这种方法) String sb = "bbbdsajjds";sb.substring(0, 4); //第0到3...
    99+
    2023-09-06
    java获取字符串的前几位字符
  • jQuery如何替换字符串中的单词
    这篇文章将为大家详细讲解有关jQuery如何替换字符串中的单词,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。替换字符串中的单词var el = $('#id'...
    99+
    2023-06-27
  • java怎么获取某个字符串的位置
    在Java中,可以使用String类的`indexOf()`方法来获取某个字符串的位置。该方法的语法如下:```javapublic...
    99+
    2023-08-25
    java
  • 如何用 Golang 正则匹配多个单词或字符串?
    golang 正则表达式使用管道符 | 来匹配多个单词或字符串,将各个选项作为逻辑 or 表达式分隔开来。例如:匹配 "fox" 或 "dog":fox|dog匹配 "quick"、"b...
    99+
    2024-05-14
    golang 正则 python
  • python如何获取字符串编码
    可以使用Python的`chardet`模块来获取字符串的编码类型。首先,需要安装`chardet`模块。可以使用以下命令来安装:`...
    99+
    2023-09-04
    python
  • 如何在vbs中获取字符串
    这篇文章给大家介绍如何在vbs中获取字符串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实例代码x="编程网是什么样的网站" y = right(x,&nbs...
    99+
    2023-06-08
  • python如何获取字符串长度
    要获取字符串的长度,可以使用len()函数,该函数会返回字符串中字符的数量。下面是一个示例代码:```pythonstring = ...
    99+
    2023-09-27
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作