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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张甲甲 中级黑马   /  2013-5-16 19:42  /  1778 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张甲甲 于 2013-5-24 13:31 编辑

public class Test{
public static void main(String[] args) {
       String str="abc.java.fdf.txt.xml";
        String str2[]=str1.split(".");
   System.out.println(str2.length());
  
}
}
代码如上 为什么我按‘.’把str字符串分割后 字符串数组str2[]的长度为零。

如果把str字符串中的点换成逗号 再按逗号解析的话结果就完全正确呢。。。
求大神指点

评分

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

查看全部评分

5 个回复

倒序浏览
本帖最后由 chouwayメ 于 2013-10-8 23:14 编辑

这个应该和正则表达式有关。
查看了下String.spilt()
参数是正则表达式。
.点  表示 :  匹配除“\n”之外的任何单个字符。   

超前学习。。。我也不是很懂 。还在IO中呢 同求

评分

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

查看全部评分

回复 使用道具 举报
这个方法在String类中是这样定义的
public String[] split(String regex){}
根据给定的正则表达式匹配查分此字符串,而‘.’号在正则表达式中具有特殊含义代表任何一个字符。你拿它分割肯定分布出来啊。要是真想拿它分拿你就得转移一下这样写
str.splice("\\.");
回复 使用道具 举报
SOAR 发表于 2013-5-16 20:05
这个方法在String类中是这样定义的
public String[] split(String regex){}
根据给定的正则表达式匹配查分 ...

噢噢噢 thx 就想成简单的字符串了
回复 使用道具 举报
package net.edu.csdn.forum;
/*
* 第一 、你这段代码有错,编译的时候,就出错了.
* 第二 、正确的代码,是跟String类的正则表达式有关的,
*                   因为"."这个符号表示任意字符,所以全都分割了.
* 你先不用管这个正则表达式是什么,到后面学到了再说.往往后面学吧.
*
*/
public class Demo18 {
        public static void main(String[] args) {
                //正确的代码
               String str="abc.java.fdf.txt.xml";
                String str2[]=str.split(".");                //str2是一个数组的引用,不是字符串的对象,
           System.out.println(str2.length);                        //str2根本调不了length()这个方法,只能调用length这个属性
          
               
        }
        }
回复 使用道具 举报
挺好的一个问题。谢谢楼主分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马