Java split用法详解及实例代码
简介
Java中字符串的split方法,是将字符串根据某个分隔符来拆分成多个子字符串的方法。本文将深入讨论split方法的用法,并提供示例代码帮助理解。
基本使用方法
String[] strArr = str.split(delimiter);
其中,str
是需要拆分的字符串,delimiter
是拆分的分隔符,strArr
是拆分后得到的字符串数组。
例如,我们需要将字符串 "hello,world"
以 ,
作为分隔符来拆分成两个字符串。
String str = "hello,world";
String[] strArr = str.split(",");
此时,strArr
的值为 ["hello", "world"]
。
分隔符的匹配
默认情况下,Java的 split
方法只能识别单个字符作为分隔符。如果我们需要使用多个字符作为分隔符,可以使用正则表达式。
例如,我们需要使用正则表达式 [-,]
来作为分隔符来拆分字符串 "hello-world,test"
。
String str = "hello-world,test";
String[] strArr = str.split("[-,]");
此时,strArr
的值为 ["hello", "world", "test"]
。
特殊字符的转义
如果我们需要使用特殊字符作为分隔符,例如 $
或 .
,则需要将特殊字符进行转义。
例如,我们需要使用 .
作为分隔符来拆分字符串 "hello.world,test"
。
String str = "hello.world,test";
String[] strArr = str.split("\\.");
此时,strArr
的值为 ["hello", "world", "test"]
。
空格的处理
默认情况下,Java的 split
方法会忽略空格。例如,将字符串 "hello world test"
以空格作为分隔符来拆分。
String str = "hello world test";
String[] strArr = str.split(" ");
此时,strArr
的值为 ["hello", "world", "", "test"]
,可以看到,中间的两个空格导致了一个空字符串的产生。
如果我们需要保留空格,可以使用正则表达式 "\\s+"
。
String str = "hello world test";
String[] strArr = str.split("\\s+");
此时,strArr
的值为 ["hello", "world", "", "test"]
。
示例1:拆分邮箱地址
例如,我们需要将一个邮箱地址 "example@163.com"
拆分成用户名和域名。
String str = "example@163.com";
String[] strArr = str.split("@");
此时,strArr
的值为 ["example", "163.com"]
。
示例2:拆分XML标签
例如,我们需要将一个XML标签中的标签名和属性拆分出来。
String str = "<book name=\"Java Tutorial\" author=\"sun微芯\"/>";
String[] strArr = str.replaceAll("/>", "").split(" ");
String tagName = strArr[0].replace("<", "");
Map<String, String> attrMap = new HashMap<String, String>();
for (int i = 1; i < strArr.length; i++) {
String[] attrArr = strArr[i].split("=");
String attrName = attrArr[0];
String attrVal = attrArr[1].replaceAll("\"", "");
attrMap.put(attrName, attrVal);
}
这里通过正则表达式替换掉了XML标签的闭合符号 />
,然后使用空格作为分隔符来拆分该字符串,得到的结果为 ["<book", "name=\"Java", "Tutorial\"", "author=\"sun微芯\""]
。通过对拆分后的字符串的处理,得到了标签名 book
和属性Map。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java split用法详解及实例代码 - Python技术站