首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >空间计数器在Java中不起作用

空间计数器在Java中不起作用
EN

Stack Overflow用户
提问于 2018-10-28 04:39:26
回答 3查看 95关注 0票数 1

我正在尝试用java做一个单词计数器。我试着用空格分隔单词来计算单词数。

我已经设法用trim函数去掉了句子前后的空格。但是,对于用户在两个单词之间键入多个空格的情况,我无法进行调整。例如,到目前为止,在hello和world之间有多个空格的字符串"hello world“将输出大于2的字数。这是我到目前为止尝试解决这个问题的代码。

代码语言:javascript
复制
public void countWord(){

    String tokens[] = userInput.trim().split(" ");
    int counter = tokens.length;

    for(int i = 0; i < tokens.length; ++i) {
        if(Objects.equals(" ", tokens[i])) {
            --counter;
        }
    }

    System.out.printf("Total word count is: %d", counter);
}

正如您所看到的,我创建了一个单词计数整数,用于保存创建的令牌的数量。然后,我尝试寻找一个只包含“”的标记,然后将单词count递减这些字符串的数量。然而,这并没有解决我的问题。

EN

回答 3

Stack Overflow用户

发布于 2018-10-28 04:48:12

尝试使用regex进行拆分

代码语言:javascript
复制
userInput.split("\\s+");
票数 3
EN

Stack Overflow用户

发布于 2018-10-28 04:46:28

我认为你可以很容易地通过检查一个tokens[i].equals("")来修复它。从而检查单词是否为空字符串。由于在使用多个空格时拆分space会在数组中创建空字符串对象,因此这应该是可行的。

票数 0
EN

Stack Overflow用户

发布于 2018-10-28 05:01:46

为什么不删除两个或更多相邻空格的所有匹配项,然后拆分:

代码语言:javascript
复制
String tokens[] = userInput.trim().replaceAll("\\s+", " ").split(" ");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53026094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档