黑马程序员技术交流社区

标题: 字符串切割遇到的问题 [打印本页]

作者: 李月    时间: 2012-4-23 14:36
标题: 字符串切割遇到的问题
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, 下载次数: 47)

QQ截图20120423143449.jpg

作者: 蒋亮    时间: 2012-4-23 14:42
str.split(".");把双引号换成单引号
作者: 李月    时间: 2012-4-23 14:46
jl_qiqi 发表于 2012-4-23 14:42
str.split(".");把双引号换成单引号

改完会报错。
作者: 陈苓    时间: 2012-4-23 14:53
  改成豆号就可以了,因为.在正则表达式中代表任意字符
作者: 蒋亮    时间: 2012-4-23 14:53
李月 发表于 2012-4-23 14:46
改完会报错。

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

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

有用的话顶一个把,手工制作,精心总结
作者: 李月    时间: 2012-4-23 14:56
jl_qiqi 发表于 2012-4-23 14:53
兄弟,不好意思,刚没去看api,双引号是对的,你把"."改为"\\.",我刚试了下,可以 ...

OK,这样可以了。谢谢了。
作者: 蒋亮    时间: 2012-4-23 14:59
李月 发表于 2012-4-23 14:56
OK,这样可以了。谢谢了。

呵呵,客气了
作者: 李月    时间: 2012-4-23 15:04
jl_qiqi 发表于 2012-4-23 14:59
呵呵,客气了

在问一下,还有像这样的字符没有。我找不到API文档在哪里?也不会查。
作者: 蒋亮    时间: 2012-4-23 19:22
李月 发表于 2012-4-23 15:04
在问一下,还有像这样的字符没有。我找不到API文档在哪里?也不会查。

:funk:不会查API文档?加QQ吧,282713672
作者: 孙魁星    时间: 2012-4-23 21:28
。的问题,需要转义的用\\




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