返回顶部
首页 > 资讯 > 精选 >Java怎么获取字符串单词个数
  • 402
分享到

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

2023-07-05 07:07:04 402人浏览 薄情痞子
摘要

今天小编给大家分享一下Java怎么获取字符串单词个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。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怎么获取字符串单词个数”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

    --结束END--

    本文标题: Java怎么获取字符串单词个数

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

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

    猜你喜欢
    • Java怎么获取字符串单词个数
      今天小编给大家分享一下Java怎么获取字符串单词个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Java获取字符串单词个数...
      99+
      2023-07-05
    • Java如何获取字符串单词个数
      目录Java获取字符串单词个数统计String单词数的三种方法方法一:使用split方法二:使用StringTokenizer方法三:使用原始的char判断总结Java获取字符串单词...
      99+
      2023-03-01
      Java获取字符串 Java单词个数 Java字符串单词个数
    • java怎么反转字符串中的每个单词
      你可以通过以下步骤来反转字符串中的每个单词:1. 将输入的字符串按空格分割为单词数组。2. 遍历单词数组,对每个单词进行反转。3. ...
      99+
      2023-10-18
      java
    • java怎么获取某个字符串的位置
      在Java中,可以使用String类的`indexOf()`方法来获取某个字符串的位置。该方法的语法如下:```javapublic...
      99+
      2023-08-25
      java
    • mysql怎么获取字符串中的一个字符
      mysql字符串截取的语法:“substring(str, pos); substring(str, pos, len)”mysql获取字符串中一个字符的示例:字符串截取语法:substring(str, po...
      99+
      2024-04-02
    • java怎么获取字符串字节长度
      在Java中,可以使用`getBytes()`方法获取字符串的字节长度。该方法会返回字符串的字节数组,然后可以使用`length`属...
      99+
      2023-08-31
      java
    • php怎么反转单词字符串
      php反转单词字符串的方法:1、新建一个php文件;2、将英文单词字符串保存在“$str”变量中;3、使用explode函数将字符串按空格拆分为数组;4、使用array_reverse函数返回上一步的数组;5、使用implode函数将反转的...
      99+
      2023-05-14
      php 字符串
    • java如何获取字符串的字节数
      在Java中,可以使用getBytes()方法来获取字符串的字节数。这个方法返回一个字节数组,其中包含了字符串的字节表示。示例代码如...
      99+
      2023-09-11
      java
    • mysql怎么获取字符串中是数字
      在mysql中获取字符串中数字的方法具体方法如下:#获取字符串中的数字create function dbo.F_Get_Number (@S varchar(100))returns intASbeginwhile PATIND...
      99+
      2024-04-02
    • oracle怎么获取字符串中的数字
      在Oracle中,您可以使用REGEXP_REPLACE函数来提取字符串中的数字。以下是一个示例: SELECT REGEX...
      99+
      2024-04-09
      oracle
    • c#怎么获取字符串中的数字
      从 c# 字符串中提取数字的方法有五种:正则表达式、循环和 char.isdigit()、int.tryparse()、string.split() 和 int.parse()、linq...
      99+
      2024-05-14
      git c#
    • java如何统计字符串中的单词数
      这篇文章主要为大家展示了“java如何统计字符串中的单词数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何统计字符串中的单词数”这篇文章吧。如何统计字符串中的单词数这道题呢主要针对的是...
      99+
      2023-06-27
    • java怎么将字符串按单词逆序输出
      要将字符串按单词逆序输出,可以按照以下步骤进行:1. 使用split()函数将字符串拆分成单词数组。2. 创建一个新的字符串数组,长...
      99+
      2023-10-18
      java
    • java提取字符串中的数字string,获取字符串中的整数或小数
      方法一:提取字符串中的数字 // 提取字符串中的数字 public static String extractNumbers(String input) { return input.replaceAll("[^0-9]...
      99+
      2023-08-16
      java 开发语言 jvm
    • JAVA怎么获取当前字符串编码
      在Java中,可以使用Charset类和StandardCharsets类来获取当前字符串的编码。以下是一些示例代码:```java...
      99+
      2023-08-18
      JAVA
    • java获取字符串的前几位字符
      java如何获取字符串的前几位字符? 方法一:通过subString()方法来进行字符串截取(推荐,我使用这种方法) String sb = "bbbdsajjds";sb.substring(0, 4); //第0到3...
      99+
      2023-09-06
      java获取字符串的前几位字符
    • php怎么过滤字符串只获取数字
      本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑方法1:利用is_numeric()函数<php header("content-type:text/html;charset=utf-8")...
      99+
      2014-08-22
      php 过滤字符串 获取数字
    • C#怎么获取子字符串
      本篇内容介绍了“C#怎么获取子字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实例using System;namespace...
      99+
      2023-06-17
    • 怎么在java中利用Scanner获取字符串
      今天就跟大家聊聊有关怎么在java中利用Scanner获取字符串,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种...
      99+
      2023-06-14
    • 怎么在java中使用Scanner获取字符串
      这篇文章将为大家详细讲解有关怎么在java中使用Scanner获取字符串,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、We...
      99+
      2023-06-14
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作