JDK中存在以下拆分重载签名
public String[] split(String regex, int limit)
始终我认为该限制是字符串将被拆分的最大标记数。
例如:
System.out.println(Arrays.toString("Andrew Carnegie:35:USA".split(":")));
出局:
[Andrew Carnegie, 35, USA]
System.out.println(Arrays.toString("Andrew Carnegie:35:USA".split(":",2)));
出来
[Andrew Carnegie, 35:USA]
但我注意到1更多的效果
System.out.println(Arrays.toString("Andrew Carnegie:35:USA:".split(":")));
出局:
[Andrew Carnegie, 35, USA]
和
System.out.println(Arrays.toString("Andrew Carnegie:35:USA:".split(":",-1)));
出局:
[Andrew Carnegie, 35, USA, ]
因此,如果字符串以分隔符结尾,则添加一个空元素。
在哪里可以找到有关此效果的具体信息?
从JavaDoc for split
:
限制参数控制应用模式的次数,因此会影响生成数组的长度。如果限制n大于零,则模式最多应用n-1次,数组的长度不大于n,数组的最后一个条目将包含最后匹配分隔符之外的所有输入。如果n为非正,则模式将被应用尽可能多的次数,数组可以有任何长度。如果n为零,则模式将被应用尽可能多的次数,数组可以有任何长度,尾随的空字符串将被丢弃。
强调我的。
所以
引用Johannes Wei:
“当调用String.split(String)时,它调用String.plit(String,0),当用n调用String.split(字符串,n)时,会丢弃后面的空字符串(如文档所说)
在这里,我打破了"。"它返回零。我不太确定极限参数它到底做了什么,但我认为这必须做些什么,因为当我传递它时,一些值答案正在改变。 期望输出- 电流输出-
我有一个随机地址字符串,如 我想将其拆分为具有两个条件的字符串数组: 该字符串数组的每个元素的长度小于或等于20 字符串数组的元素没有尴尬的结尾 例如,每20个字符拆分将产生: 但正确的输出是: 注意字符串数组中的每个元素是如何小于或等于20的。 以上是我对这段代码的输出:
问题 你想拆分一个字符串。 解决方案 使用 JavaScript 字符串的 split() 方法: "foo bar baz".split " " # => [ 'foo', 'bar', 'baz' ] 讨论 String 的这个 split() 方法是标准的 JavaScript 方法。可以用来基于任何分隔符——包括正则表达式来拆分字符串。这个方法还可以接受第二个参数,用于指定返回的子字符串数
问题内容: 我正在尝试找到一种将String拆分为String数组的方法,并且每当遇到白色香料时就需要对其进行拆分,例如 “嗨,我是保罗” 进入” “嗨”“我”“保罗” 如何使用RegularExpression在split()方法中表示空格? 问题答案: 您需要一个正则表达式,例如,这意味着: 每当遇到至少一个空格时就进行拆分 。完整的Java代码是:
问题内容: 我有一个名为的字符串,其形式像这样 。 我想使用:分隔符。 这样一来,单词将被拆分成自己的字符串,并将成为另一个字符串。 然后我只想使用2种不同的字符串来显示该字符串。 解决这个问题的最佳方法是什么? 问题答案: 你可能要删除第二个字符串的空格: 如果要用特殊字符(例如dot(。))分割字符串,则应在点之前使用转义字符\ 例: 还有其他方法可以做到这一点。例如,你可以使用类(来自):
问题内容: 如何在PHP中使用定界符分割字符串?例如,如果我有字符串,我如何得到? 问题答案: 做这项工作: 您还可以直接将部分结果提取到变量中: