我想拆分",,"
到一个数组4"
使用String.split()
这是我的代码:
String str = ",,,";
String[] tokens = str.split(",");
但是,结果标记是一个空数组:[],而不是我想要的4"
(["","","",""])
的数组。
我已经测试过稍微更改一下str:
String str = ",,,1";
String[] tokens = str.split(",");
这次的结果标记是<代码>[“”、“”、“”、“”、“”1“]。这接近我想要的,但我真的不想在进行拆分之前添加这个“1”。
问题基本上是字符串。如果split()只包含空元素,它将返回空数组。
你能帮我解决这个问题吗?
您需要使用重载的字符串#split(regex,limit)
方法,该方法接受limit参数。
String[] tokens = str.split(",", -1);
来自文档(强调我的):
limit参数控制应用阵列的次数,因此会影响生成阵列的长度。如果限制n大于零,则模式最多应用n-1次,数组的长度将不大于n,数组的最后一个条目将包含最后一个匹配分隔符以外的所有输入。如果n为非正,则阵列将被应用尽可能多的次数,并且阵列可以有任何长度。如果n为零,则将尽可能多次应用该模式,数组可以有任何长度,并且将丢弃尾随的空字符串。
说明:如果不提供limit参数或提供“零”作为限制,则拆分()将丢弃尾随的空字段。当您提供一个正限制参数时,它会将字段数限制到该特定限制。但是,当您提供负限制时,split()方法允许任何数量的字段,并且不会丢弃尾随的空字段。更清楚地说,请查看拆分模式(regex,limit)的源代码,该模式的末尾有此代码段(注释是我添加的,在实际的源代码中不存在)。
if (limit == 0) // When zero or no arg is given
while (resultSize > 0 && matchList.get(resultSize-1).equals("")) // if trailing entries are blank
resultSize--; // remove them out
注意:如果您不提供任何限制参数,不带限制参数的拆分()
方法会像这样调用重载的拆分()
方法。
public String[] split(String regex) {
return split(regex, 0);
}
并且还要注意,String#拆分(regex,限制)
内部调用Pattern#拆分(regex,限制)
。
问题内容: 欲分割为4的阵列,以利用 这是我的代码: 但是,结果标记是一个空数组:[],而不是 我想要的4数组。 我已经测试过更改一点: 这次的结果标记为。这与我想要的接近,但是我真的不想在拆分之前添加此“ 1”。 问题基本上是,如果它仅包含空元素,它将返回一个空数组。 您能帮助解决问题吗? 问题答案: 您需要使用带有limit参数的重载方法。 从文档(重点是我的): limit参数控制应用图案的
在逗号处划分字符串的最佳方法是什么,这样每个单词都可以成为ArrayList的一个元素? 例如:
问题内容: 我需要在逗号处将字符串输入拆分为一个数组。 我该如何做到这一点? 输入: 问题答案: 尝试: 输出:
我有一个字符串变量,它包括我试图排序的网格的列名。。 我希望将其拆分为一个包含4个值的字符串数组。我尝试了以下代码行: 然而,当我运行这个程序时,逗号仍然停留在该值上,因此我有例如和。如果没有逗号,如何拆分这些值?
问题内容: 当我有1、2、3等字符串列表时,我想将此列用作一列 是否可以通过sql查询? 例如) <-我知道这不起作用。 问题答案: 使用任意数字的子查询来分割您的字符串。您可以使用‘1,2,3’代替vals。 看到它正常工作
问题内容: 我正在尝试找到一种将String拆分为String数组的方法,并且每当遇到白色香料时就需要对其进行拆分,例如 “嗨,我是保罗” 进入” “嗨”“我”“保罗” 如何使用RegularExpression在split()方法中表示空格? 问题答案: 您需要一个正则表达式,例如,这意味着: 每当遇到至少一个空格时就进行拆分 。完整的Java代码是: