java中在处理String字符串时,很多场合都要使用split方法
本文就全面剖析 split(String regex) 的用法
前期准备工作(包括相关工具或所使用的原料等)IntelliJ IDEAjavasplit 详细的操作方法或具体步骤
先来看看API:
/**
* @param regex
* the delimiting regular expression
*
* @return the array of strings computed by splitting this string
* around matches of the given regular expression
*
* @throws PatternSyntaxException
* if the regular expression's syntax is invalid
* * @see java.util.regex.Pattern
*
* @since 1.4
* @spec JSR-51
*/
public String[] split(String regex) {
return split(regex, 0);
}

细心的同学已经观察到
split方法的第一个参数是regex,是的,就是前面讲过的正则表达式
还可以使用第二个参数limit,即最多返回几个字符串
来一段常见的代码
package chapter4;
/**
* Created by MyWorld on 2016/3/28.
*/
public class StringSplitDemo {
public static void main(String[] args) {
String demoStr="Hello world tang";
String[] result=demoStr.split(" ");
for (String s : result) {
System.out.println(s);
}
}
}

api已经了解了,输出的结果应该是Hello world tang
执行下看看结果
Output:
Hello
world
tang

来猜猜这种场景下的输出是什么
更改下代码
Code:
String demoStr="v1|v2|v3";
String[] result=demoStr.split("|");

是v1 v2 v3 ?
好执行下看看结果
Output:
v
1
|
v
2
|
v
3

是不是很意外,为什么呢?
不理解的tx再想想api里怎么说的,第一个参数是什么样的数据呢?
正则表达式
对了
是正则表达式嘛。正则表达式30分钟入门系列不是已经讲过,“|”是用来表示字符串之间或的关系
上面的例子中,regex是"|",从正常的视角来看,除了“|”什么也没有,大家是不是忘了,\b,就是表示字符前后的界定符
"|"就是表示以界定符来分隔字符串,得到的就是一个一个的元素
如果想得到v1 v2 v3,需要怎么做呢
如果不想让“|”作为正则表达式,就加转义符
改下代码
Code:
String[] result=demoStr.split("\\|");

执行下,看看结果是否与预期一致
Output:
v1
v2
v3
与预期一致
OK

细心的tx有木有受到“|”,这从此正则表达式的启发
如果有多类分隔符的场景
更改代码:
Code:
String demoStr="v1|v2;v3";
String[] result=demoStr.split("\\||;");

执行下看看结果,是不是得到预期的v1 v2 v3
Output:
v1
v2
v3
与预期一致
Ok

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
