split函数如果保留最后一个空的位置?

时间:2021-05-31 21:44:39
,a ,
如果按,切割的话,
结果是数组[ ,a]
也就是说前面的空的东西会留下,最后的不会留下。
现想把结果保留为
[,a,] 三个元素的数组。
求解。

7 个解决方案

#1


自己加判断吧,末尾为,的特殊处理吧

#2


  split不支持,我也见到过,需要自己写方法。本地代码COPY不下来, 我是使用 indexOf 实现的。
  

#3


split("") 这样可不可以..... 我记得js上可以

#4



“,a,”.split(",");//java1.4+

#5


引用 4 楼 luogui551 的回复:

“,a,”.split(",");//java1.4+

刚点快了,是:

“,a,”.split(",", -1);//1.4+

#6


5楼正解 
split
public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。 
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。 因此,所得数组中不包括结尾空字符串。 
split
public String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。 
此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,
或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。
如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。 

limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,
数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。
如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。
如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
n 非正数时,保留数组的长度,不会丢弃结尾处得空字符串


#7


引用 6 楼 magi1201 的回复:
5楼正解 
split
public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。 
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。 因此,所得数组中不包括结尾空字符串。 
split
public String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。 
此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,
或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。
如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。 

limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,
数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。
如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。
如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
n 非正数时,保留数组的长度,不会丢弃结尾处得空字符串

赞一个!

#1


自己加判断吧,末尾为,的特殊处理吧

#2


  split不支持,我也见到过,需要自己写方法。本地代码COPY不下来, 我是使用 indexOf 实现的。
  

#3


split("") 这样可不可以..... 我记得js上可以

#4



“,a,”.split(",");//java1.4+

#5


引用 4 楼 luogui551 的回复:

“,a,”.split(",");//java1.4+

刚点快了,是:

“,a,”.split(",", -1);//1.4+

#6


5楼正解 
split
public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。 
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。 因此,所得数组中不包括结尾空字符串。 
split
public String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。 
此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,
或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。
如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。 

limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,
数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。
如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。
如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
n 非正数时,保留数组的长度,不会丢弃结尾处得空字符串


#7


引用 6 楼 magi1201 的回复:
5楼正解 
split
public String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。 
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。 因此,所得数组中不包括结尾空字符串。 
split
public String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。 
此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,
或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。
如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。 

limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,
数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。
如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。
如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
n 非正数时,保留数组的长度,不会丢弃结尾处得空字符串

赞一个!