字符串拆分
代码语言:javascript复制 public static void main(String[] args) {
String str = "I Live In The Home";
String[] ret = str.split(" ");
for (String x : ret){
System.out.println(x);
}
System.out.println("原来的字符串为:" str);
//System.out.println(Arrays.toString(ret));
}
输出结果为:
从这里可以看到,本代码是用空格拆分字符串,但是最开始的字符串不会因为字符串的分割而改变(String定义的字符串不会被修改)
注意: 这里要引出一个概念:正则表达式 就比如下面的例子:
代码语言:javascript复制 public static void main(String[] args) {
String str = "192.43.67";
//想按照“.”来切分
String[] result = str.split(".");
for (String x : result){
System.out.println(x);
}
}
以上代码没有执行结果,也就是说split方法在str里面没有找到"."这个字符,我们知道,“.”在正则表达式中是一个特殊字符 ,需要进行转义才能识别出来。如下:
代码语言:javascript复制 String str = "192.43.67";
//想按照“.”来切分
//.在正则表达式中是一种特殊符号,为了让split识别出源字符串中的“.”,就需要进行转意义“\.”
String[] result1 = str.split("\.");
for (String x : result){
System.out.println(x);
}
“.” 里面有两个反斜杠,代表的两个转义, 一个是在java中进行转义,一个是在正则中表示转义
与之用法相同的符号有:“| * ”
实际应用
代码语言:javascript复制 public static void main(String[] args) {
//split的实际应用
String string = "name=zhangsan&age=14&sex=male";
//1.先按照&进行拆分
String[] result = string.split("&");
for (String tmp : result){
//现在已经按照&拆分好了,开始进行=的拆分
String[] ret = tmp.split("=");
if (ret.length != 2){
continue;
}
System.out.println(ret[0] ": " ret[1]);
}
}