我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java怎么获取字符串单词个数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java怎么获取字符串单词个数

今天小编给大家分享一下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是一个很有用的类,构造函数有三个:

    • StringTokenizer(String str) :构造一个用来解析 str 的 StringTokenizer 对象。java 默认的分隔符是空格("")、制表符(\t)、换行符(\n)、回车符(\r)。

    • StringTokenizer(String str, String delim) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符。

    • 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等,非常基础。

    以上就是“Java怎么获取字符串单词个数”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Java怎么获取字符串单词个数

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

    下载Word文档

    猜你喜欢

    Java怎么获取字符串单词个数

    今天小编给大家分享一下Java怎么获取字符串单词个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Java获取字符串单词个数
    2023-07-05

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

    这篇文章主要介绍了Java如何获取字符串单词个数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-01

    java怎么反转字符串中的每个单词

    你可以通过以下步骤来反转字符串中的每个单词:1. 将输入的字符串按空格分割为单词数组。2. 遍历单词数组,对每个单词进行反转。3. 将反转后的单词重新连接为一个字符串,每个单词之间用空格分隔。下面是一个示例代码:javapublic cla
    2023-10-18

    如何在 Java 中获取某个字符串的位置?(java怎么获取某个字符串的位置)

    在Java编程中,经常会遇到需要获取某个字符串在另一个字符串中位置的情况。这是一个常见的编程需求,下面我们将详细介绍在Java中如何实现这一功能。一、使用indexOf()方法Java中的String类提供了一
    如何在 Java 中获取某个字符串的位置?(java怎么获取某个字符串的位置)
    Java2024-12-22

    java怎么获取某个字符串的位置

    在Java中,可以使用String类的`indexOf()`方法来获取某个字符串的位置。该方法的语法如下:```javapublic int indexOf(String str)```以下是一个示例:```javapublic class
    2023-08-25

    如何在 Java 中获取字符串的第一个字符?(java如何获取字符串的第一个字符)

    在Java编程中,获取字符串的第一个字符是一个常见的操作。以下是两种常见的方法来实现这一目标。方法一:使用charAt()方法Java的String类提供了charAt()方法,该方法用于返回指定索引位置的字符
    如何在 Java 中获取字符串的第一个字符?(java如何获取字符串的第一个字符)
    Java2024-12-21

    Java 中如何获取字符串的长度?(java怎么获取字符串长度)

    在Java编程中,获取字符串长度是一项常见的操作。字符串是Java中常用的数据类型之一,了解如何获取字符串的长度对于字符串处理和编程非常重要。一、使用length()方法Java中的String类提供了一个l
    Java 中如何获取字符串的长度?(java怎么获取字符串长度)
    Java2024-12-20

    如何使用 Java 的 Scanner 获取字符串?(java怎么用scanner获取字符串)

    在Java编程中,Scanner类是一个非常有用的工具,它允许我们从各种输入源(如控制台、文件等)读取用户输入。其中,获取字符串是Scanner的常见操作之一。以下是详细的步骤和示例代码:一、导入相关类
    如何使用 Java 的 Scanner 获取字符串?(java怎么用scanner获取字符串)
    Java2024-12-21

    Java 中如何获取字符串的字节数?(java如何获取字符串的字节数)

    在Java编程中,获取字符串的字节数是一个常见的需求。字节数的获取对于处理二进制数据、网络传输以及字符编码等方面都非常重要。本文将详细介绍在Java中如何获取字符串的字节数,并提供相应的代码示例。一、字符编码与字节数的关系
    Java 中如何获取字符串的字节数?(java如何获取字符串的字节数)
    Java2024-12-14

    java怎么获取字符串字节长度

    在Java中,可以使用`getBytes()`方法获取字符串的字节长度。该方法会返回字符串的字节数组,然后可以使用`length`属性获取字节长度。以下是一个示例代码:```javaString str = "Hello, World!";
    2023-08-31

    在 Java 中如何获取字符串的长度?(java中怎么获取字符串长度)

    在Java编程中,获取字符串的长度是一个常见的操作。字符串是Java中常用的数据类型之一,了解如何获取字符串的长度对于处理字符串数据非常重要。本文将介绍在Java中获取字符串长度的方法,并提供相应的代码示例。一、使用length()方法
    在 Java 中如何获取字符串的长度?(java中怎么获取字符串长度)
    Java2024-12-20

    php怎么反转单词字符串

    php反转单词字符串的方法:1、新建一个php文件;2、将英文单词字符串保存在“$str”变量中;3、使用explode函数将字符串按空格拆分为数组;4、使用array_reverse函数返回上一步的数组;5、使用implode函数将反转的数组按空格连接为字符串,再使用echo输出结果即可。
    2023-05-14

    java怎么将字符串按单词逆序输出

    要将字符串按单词逆序输出,可以按照以下步骤进行:1. 使用split()函数将字符串拆分成单词数组。2. 创建一个新的字符串数组,长度与单词数组相同。3. 使用循环将单词数组中的单词逆序复制到新的字符串数组中。4. 使用循环输出新的字符串数
    2023-10-18

    c#怎么获取字符串中的数字

    从 c# 字符串中提取数字的方法有五种:正则表达式、循环和 char.isdigit()、int.tryparse()、string.split() 和 int.parse()、linq。如何从 C# 字符串中提取数字从 C# 字符串中提
    c#怎么获取字符串中的数字
    2024-05-14

    oracle怎么获取字符串中的数字

    在Oracle中,您可以使用REGEXP_REPLACE函数来提取字符串中的数字。以下是一个示例:SELECT REGEXP_REPLACE('abc123def456', '[^0-9]', &#
    oracle怎么获取字符串中的数字
    2024-04-09

    java如何统计字符串中的单词数

    这篇文章主要为大家展示了“java如何统计字符串中的单词数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何统计字符串中的单词数”这篇文章吧。如何统计字符串中的单词数?这道题呢?主要针对
    2023-06-27

    JAVA怎么获取当前字符串编码

    在Java中,可以使用Charset类和StandardCharsets类来获取当前字符串的编码。以下是一些示例代码:```javaimport java.nio.charset.Charset;import java.nio.charse
    2023-08-18

    Java如何计算字符串中的单词数

    Java中计算字符串单词数的方法:使用String.split()将字符串按空格拆分为数组,数组长度即单词数。使用正则表达式和Scanner遍历文本并读取单词,统计单词数。考虑因素:空格处理标点符号处理大小写敏感性效率特殊字符
    Java如何计算字符串中的单词数
    2024-04-02

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录