A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 路边小色狼 中级黑马   /  2013-9-24 22:29  /  2438 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 路边小色狼 于 2013-9-24 22:47 编辑
  1. public class spilet {
  2. public static void main(String[] args)
  3. {
  4. String a="60.35.45.68";
  5. String[] str=a.split(".");
  6. System.out.println(str.length);
  7. }

  8. }
复制代码
切割完理论是得到String[] str={"60","35","45","68"},没错吧
可是打印出来长度却为0

5 个回复

倒序浏览
楼主,你忘记转义符号了,看下面代码--->

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 、、、、、、、、、、、、、、、、、、、、、
回复 使用道具 举报
yting_xmei1129 发表于 2013-9-24 22:42
楼主,你忘记转义符号了,看下面代码--->

public class spilet {

正解,谢谢了。我也刚找着答案。
回复 使用道具 举报
因为"."是转义符,如果要用"."作为分隔符的话要加上"\\"。
例如:
  1. String.split(".");//这样是错误的。
  2. String.split("\\.");//这样才是正确的写法。
复制代码
PS.类名首字母要大写。
回复 使用道具 举报
public  String [] split(String regex) 这是split的用法,括号的内容是正则表达式,而“.“在正则表达式中代表任何字符,所以需要对”.“进行转义。最终结果\\.。
回复 使用道具 举报
转义字符,楼主,其实这个转义字符的问题还是比较容易忽视的,建议楼主,每次在双引号中使用特殊符号的时候都养成习惯考虑下这个问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马