Java.lang.String.split的使用心得

用法小结(jdk api 1.8_google.CHM参照)

  • split方法的返回值是String[]
  • 如果用“.”作为分隔的话,必须是如下写法,String.split("\\.")
  • 如果用“|”作为分隔的话,必须是如下写法,String.split("\\|")
  • 如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如,“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");

jdk1.8帮助文档中文内容

split
public String[] split(String regex)将此字符串拆分为给定的regular expression的匹配。 
该方法的工作原理是通过使用给定表达式和限制参数为零调用双参数split方法。 因此,尾随的空字符串不会包含在结果数组中。 

例如,字符串"boo:and:foo"使用以下表达式得到以下结果: 

Regex Result 
: { "boo", "and", "foo" } 
o { "b", "", ":and:f" } 

参数 
regex - 分隔正则表达式 
结果 
通过将该字符串围绕给定的正则表达式的匹配来计算的字符串数组 
异常 
PatternSyntaxException - 如果正则表达式的语法无效 
从以下版本开始: 
1.4 
另请参见: 
Pattern 

它的下一个方法join也挺有趣的

For example, 

     String message = String.join("-", "Java", "is", "cool");
     // message returned is: "Java-is-cool"


public static String join(CharSequence delimiter,CharSequence... elements)
                          
请注意,如果元素为空,则添加"null" 。 
参数 
delimiter - 分隔每个元素的分隔符 
elements - 要加入的元素。 

它的上一个方法是另一种重载写法,可以限制输出个数,即根据该正则匹配把目标字符串分割成几个

public String[] split(String regex, int limit)将此字符串拆分为给定的regular expression的匹配。 

此方法返回的数组包含此字符串的每个子字符串,该字符串由与给定表达式匹配的另一个子字符串终止,或由字符串结尾终止。 数组中的子字符串按照它们在此字符串中的顺序排列。 如果表达式与输入的任何部分不匹配,则生成的数组只有一个元素,即这个字符串。 

当在此字符串的开始处存在正宽度匹配时,在结果数组的开始处包含空的前导子字符串。 开始时的零宽度匹配不会产生这样的空的前导子串。 

limit参数控制应用模式的次数,因此影响生成的数组的长度。 如果极限n大于0,则模式最多应用n -1次,数组的长度不大于n ,数组的最后一个条目将包含超出最后一个匹配分隔符的所有输入。 如果n是非正的,那么模式将被应用到尽可能多的次数,并且数组可以有任何长度。 如果n为0,则模式将被应用尽可能多次,数组可以有任何长度,并且尾随的空字符串将被丢弃。 

例如,字符串"boo:and:foo"使用以下参数产生以下结果: 

Regex Limit Result 
: 2 { "boo", "and:foo" } 
: 5 { "boo", "and", "foo" } 
: -2 { "boo", "and", "foo" } 
o 5 { "b", "", ":and:f", "", "" } 
o -2 { "b", "", ":and:f", "", "" } 
o 0 { "b", "", ":and:f" } 

调用此方法的形式str。 split( 正则表达式 , n )产生与表达式相同的结果 

Pattern.compile(regex).split(str, n) 
参数 
regex - 分隔正则表达式 
limit - 结果阈值,如上所述 
结果 
通过将该字符串围绕给定的正则表达式的匹配来计算的字符串数组 
异常 
PatternSyntaxException - 如果正则表达式的语法无效 
从以下版本开始: 
1.4 
另请参见: 
Pattern 
posted @ 2021-03-31 10:52  陈烛  阅读(176)  评论(0)    收藏  举报