黑马程序员技术交流社区

标题: java String split 处理问题 [打印本页]

作者: 一蓑烟雨任平生    时间: 2012-3-19 13:49
标题: java String split 处理问题
public static void main(String args[]){
String s="a.txt";
String a[]=s.split(".");
System.out.println(a.length);
}
输出结果为0 不是2吗?
作者: 李深山    时间: 2012-3-19 13:58
public static void main(String args[]){
String s="a.txt";
String a[]=s.split("\\.");//这里的"."需要转意
System.out.println(a.length);
}
正解如上
作者: 马云    时间: 2012-3-19 14:07
"."在正则中代表任意字符。用"\\."去分割就能分出来了,这里记住就可以了,到后边会学到这个正则表达式的内容的
作者: ♂诸侯♂    时间: 2012-3-19 14:32
转义字符。"\\."这样就可以了
作者: 魏群    时间: 2012-3-19 15:15
"."需要用转移字符.
使用String.split方法时要注意,在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。 参数regex是一个定界正则表达式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,正则表达式中"."匹配任何字符 (详细可查API文档)
修改如下:String a[]=s.split("\\u002E");或String a[]=s.split("\\.");或String a[]=s.split("[.]");
另附上一些常用的转义字符
1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377'
      \0:空字符
2.Unicode转义字符:\u + 四个十六进制数字;0~65535
     \u0000:空字符
3.特殊字符:就3个
      \":双引号
     \':单引号
     \\:反斜线
4.控制字符:5个
\' 单引号字符

\\ 反斜杠字符

\r 回车

\n 换行

\f 走纸换页

\t 横向跳格

\b 退格

点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2