gpt4 book ai didi

java - 使用带有非空白正则表达式的 String split() 方法

转载 作者:行者123 更新时间:2023-12-01 17:05:57 29 4
gpt4 key购买 nike

我试图弄清楚它是如何工作的,我尝试了几个不同的例子,但我只是不明白我得到的结果。在字符串上使用它的示例,例如:

String s1 = "Hello there how are you";
String [] sa1 = s1.split("\\s");

将返回包含 5 个元素的数组,这很明显,这对我来说很有意义。这个怎么样:

String s1 = "Hello there how are you";
String [] sa1 = s1.split("\\S");

返回 17 个空字符串的数组...有人可以帮我理解它吗?

最佳答案

正则表达式模式 \\S 表示不是空格,因此每个字母都是分隔符。

你得到:

  • Hello 每个字母前的每个空字符串有 5 个空字符串
  • 1 个单空格字符串 "" 用于 Hellothere 之间的空格
  • 还有 4 个空字符串,用于 there 的字母之间的空字符串
  • 另外 1 个单空格字符串 "" 用于 therehow 之间的空格
  • 另外 2 个空字符串,用于 how 字母之间的空字符串
  • 另外 1 个单空格字符串 "" 用于 howare 之间的空格
  • 另外 2 个空字符串,用于 are 字母之间的空字符串
  • 另外 1 个单空格字符串 "" 用于 howare 之间的空格
  • 还会有 3 个空字符串,但是 String's split method丢弃尾随的空字符串。

将它们全部相加即可得到 17 个元素。其中大部分都是空字符串,但其中有 4 个不是空字符串,并且由一个空格组成。

关于java - 使用带有非空白正则表达式的 String split() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25492100/

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