gpt4 book ai didi

java - .split() 和 [\\W] 创建一个额外的空字符串?

转载 作者:行者123 更新时间:2023-11-30 05:33:13 29 4
gpt4 key购买 nike

我正在创建一个小程序,将字符串拆分为标记(连续的英文字母字符),然后输出标记的数量以及实际的标记。问题是,只要有逗号,就会创建一个额外的空字符串元素后跟一个空格。

我研究了正则表达式并了解到\W 是任何不是单词字符的东西。

String str = sc.nextLine();

// creating an array of tokens
String tokens[] = str.split("[\\W]");

int len = tokens.length;
System.out.println(len);
for (int i = 0; i < len; i++) {
System.out.println(tokens[i]);
}

输入:

Hello, World.

预期输出:

2
Hello
World

实际输出:

3
Hello

World

注意:这是我的第一篇堆栈溢出帖子,如果我做错了什么,请告诉我,谢谢

最佳答案

尝试str.split("\\W+")表示1个或多个非单词字符

\W 仅匹配 1 个字符。所以它在 处断开,然后在空格处再次断开这就是为什么它会返回一个额外的空字符串。\W+ 将匹配 ‘, ‘ 作为一个,因此它只会中断一次,因此您只会返回标记。 (它适用于多个 token ,而不仅仅是两个。因此“hello,world,again”将为您提供[hello,world,again]。

关于java - .split() 和 [\\W] 创建一个额外的空字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57137141/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com