黑马程序员技术交流社区
标题:
String切割的问题
[打印本页]
作者:
路边小色狼
时间:
2013-9-24 22:29
标题:
String切割的问题
本帖最后由 路边小色狼 于 2013-9-24 22:47 编辑
public class spilet {
public static void main(String[] args)
{
String a="60.35.45.68";
String[] str=a.split(".");
System.out.println(str.length);
}
}
复制代码
切割完理论是得到String[] str={"60","35","45","68"},没错吧
可是打印出来长度却为0
作者:
yting_xmei1129
时间:
2013-9-24 22:42
楼主,你忘记转义符号了,看下面代码--->
public class spilet {
public static void main(String[] args) {
String a = "60.35.45.68";
String[] str = a.split("\\."); //这里需要加 \\
System.out.println(str.length);
}
}
可以得到你想要的结果!
刚看了下 API
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
. 是正则表达式中的预定义字符了, 所以想要用 . 表示字符串中的 "." 的话,就需要转义了,正则表达式中 为 \. ,java中又需要转义,所以为 \\.
建议楼主多看下 正则表达式中的具体介绍、、、
希望可以帮到楼主、、、
The you smile until forever 、、、、、、、、、、、、、、、、、、、、、
作者:
路边小色狼
时间:
2013-9-24 22:47
yting_xmei1129 发表于 2013-9-24 22:42
楼主,你忘记转义符号了,看下面代码--->
public class spilet {
正解,谢谢了。我也刚找着答案。
作者:
落木萧萧
时间:
2013-9-24 22:50
因为"."是转义符,如果要用"."作为分隔符的话要加上"\\"。
例如:
String.split(".");//这样是错误的。
String.split("\\.");//这样才是正确的写法。
复制代码
PS.类名首字母要大写。
作者:
梁贺
时间:
2013-9-24 22:52
public String [] split(String regex) 这是split的用法,括号的内容是正则表达式,而“.“在正则表达式中代表任何字符,所以需要对”.“进行转义。最终结果\\.。
作者:
迷你卡卡
时间:
2013-9-24 23:07
转义字符,楼主,其实这个转义字符的问题还是比较容易忽视的,建议楼主,每次在双引号中使用特殊符号的时候都养成习惯考虑下这个问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2