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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 821728010 中级黑马   /  2013-5-28 23:32  /  1995 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 821728010 于 2013-5-29 17:35 编辑

           字符创怎么分隔不开?


public class Demo12 {
        
        public static void main(String[] args) {
                method("haha,kkk.abcd");
}
        
        
static void method(String str){
               
                String[] str1 = str.split(".");
               
                for(String s:str1){
                        System.out.println(s);
                }
               

        }
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

10 个回复

倒序浏览
本帖最后由 神之梦 于 2013-5-28 23:58 编辑

楼下已经说了,具体什么原因我确实不知道,只是给楼主试了下代码,如果split(“.”)里面是点的话,确实分割不出,如果是分号或者其他则可以。
回复 使用道具 举报
亲,在java中,"."(点)是具有特殊意义的. 所以不能这样分割.你可以用转义字符转义试试看,具体行不行我也没记太清楚,我eclipse这会刚好出问题了
split方法 切割       
声明: public String[] split(String s)
作用:  将字符串按照s进行切割,切割后的每一部分做为String数组的一个元素。
(在使用时注意正则的问题) 你的这个点是正则表达式中的一个特殊字符.

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
shiweiCao 发表于 2013-5-28 23:52
亲,在java中,"."(点)是具有特殊意义的. 所以不能这样分割.你可以用转义字符转义试试看,具体行不行我也没记 ...

呃呃呃懂了    谢谢   
回复 使用道具 举报
String str= "haha kkk abcd";
         String[] s = new String[3];        //定义接受数组长度   , String[] s =null试了一下,也可以!
         s = str.split(" ");
         for (String string : s) {
                         System.out.println(string);
                 }

切割符:.  的问题
你用空格完全可以

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
这牵扯到正则表达式。在正则表达式里。“。”代表任意字符,意思就是你现在相当于用任意字符对字符串分割。应该用“\\.”才对

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
跟楼上一样,api的原文解释如下:

split
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
返回:
字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的

. 任何字符(与行结束符可能匹配也可能不匹配)
回复 使用道具 举报
lingziye2011 发表于 2013-5-29 00:15
这牵扯到正则表达式。在正则表达式里。“。”代表任意字符,意思就是你现在相当于用任意字符对字符串分割。 ...

String words = "我\\.是\\.谁\\.我";
            String[] print = new String[5];
            print = words.split("\\.");
            for (String string : print) {
                        System.out.println(string);
                }
打印结果是这样的:
我\
是\
谁\


怎么回事?
回复 使用道具 举报
String words = "我.是.谁.我";
            String[] print = new String[5];
            print = words.split("\\.");
            for (String string : print) {
                        System.out.println(string);
                }
这样就对了,想在一行就把println后的ln去掉
回复 使用道具 举报
821728010 发表于 2013-5-28 23:56
呃呃呃懂了    谢谢

不客气. 一起加油.
回复 使用道具 举报
lingziye2011 发表于 2013-5-29 00:39
String words = "我.是.谁.我";
            String[] print = new String[5];
            print = words. ...

ok勒!呵呵,谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马