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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李月 中级黑马   /  2012-4-23 14:36  /  2268 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class FindText
{
        public static void main(String[] args)
        {
                findText();
        }
        public static void findText()
        {
                String str="abc.java";
                String[] s=str.split(".");

                System.out.println(s[0]);


                for(int x=0;x<s.length;x++)
                {
                        System.out.println(s[x]);
                }
               
        }
       
       
}


当我运行这个程序时,为什么s数组中没有数据呢?

当我改用b切割时,s数据中才有数据。难道不能用“.”来切割吗?

QQ截图20120423143449.jpg (19.48 KB, 下载次数: 37)

QQ截图20120423143449.jpg

10 个回复

倒序浏览
str.split(".");把双引号换成单引号
回复 使用道具 举报
jl_qiqi 发表于 2012-4-23 14:42
str.split(".");把双引号换成单引号

改完会报错。
回复 使用道具 举报
  改成豆号就可以了,因为.在正则表达式中代表任意字符
回复 使用道具 举报
李月 发表于 2012-4-23 14:46
改完会报错。

兄弟,不好意思,刚没去看api,双引号是对的,你把"."改为"\\.",我刚试了下,可以
回复 使用道具 举报
这个问题其实是学习生活中经常遇到的一个特殊符号运算的问题
这里因为 点号是一个特殊字符,所以我们需要转义,就像是HTML中的空格,或者说dos窗口中输入的斜杠是一个道理

如何去接决这个问题呢,两种方式
第一种方式  string.split("\\.")看这样是不是正常显示了
另一种方式也可以实现,但是不推荐使用,因为在某些情况下可能会出错 string.split("[.]"),这样的话是不是回归正常了

有用的话顶一个把,手工制作,精心总结
回复 使用道具 举报
李月 中级黑马 2012-4-23 14:56:28
7#
jl_qiqi 发表于 2012-4-23 14:53
兄弟,不好意思,刚没去看api,双引号是对的,你把"."改为"\\.",我刚试了下,可以 ...

OK,这样可以了。谢谢了。
回复 使用道具 举报
蒋亮 中级黑马 2012-4-23 14:59:32
8#
李月 发表于 2012-4-23 14:56
OK,这样可以了。谢谢了。

呵呵,客气了
回复 使用道具 举报
李月 中级黑马 2012-4-23 15:04:46
9#
jl_qiqi 发表于 2012-4-23 14:59
呵呵,客气了

在问一下,还有像这样的字符没有。我找不到API文档在哪里?也不会查。
回复 使用道具 举报
李月 发表于 2012-4-23 15:04
在问一下,还有像这样的字符没有。我找不到API文档在哪里?也不会查。

:funk:不会查API文档?加QQ吧,282713672
回复 使用道具 举报
。的问题,需要转义的用\\
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马