split使用中注意点
程序员文章站
2024-01-02 18:23:46
...
在使用split分割字符串时,有时分割并不是我们想象的结果,比如:String str = "a|b|ce|d";使用str.split("|");
输出的结果是:
a
|
b
|
c
e
|
d
是不是觉得很奇怪呢,看如下分析:
java.lang.string.split
split 方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator,[limit]])
参数
stringObj
必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
separator
可选项。字符串或 正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
limit
可选项。该值用来限制返回数组中的元素个数。
说明
split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。
原因是:有些是特殊字符,需要进行转义:比如
1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\.")也可以使用正则string.split("[.]"),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");不过这里就不能使用string.split(“[|]”),这是因为在正则表达式里"|"也是个特殊字符,所以还是需要进行特殊处理。
“.”和“|”、”^”、“(”、“)”都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可以用String.split("and|or");
输出的结果是:
a
|
b
|
c
e
|
d
是不是觉得很奇怪呢,看如下分析:
java.lang.string.split
split 方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator,[limit]])
参数
stringObj
必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
separator
可选项。字符串或 正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
limit
可选项。该值用来限制返回数组中的元素个数。
说明
split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。
原因是:有些是特殊字符,需要进行转义:比如
1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\.")也可以使用正则string.split("[.]"),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");不过这里就不能使用string.split(“[|]”),这是因为在正则表达式里"|"也是个特殊字符,所以还是需要进行特殊处理。
“.”和“|”、”^”、“(”、“)”都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可以用String.split("and|or");
推荐阅读
-
split使用中注意点
-
使用C++的const引用的需要额外注意的两点
-
PHP中SESSION使用中的一点经验总结_PHP教程
-
Java中final关键字的使用与注意总结
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
struts2中通配符的使用及注意问题
-
Android 对话框dialog使用注意点(android.view.WindowManager$BadTokenException)
-
PHP 中$_FILES的使用及注意事项_PHP教程
-
使用startsWith与endsWith需注意的点
-
小心陷阱!MySQL中处理Null时需注意两点