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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 向前看向前走 中级黑马   /  2014-5-30 12:59  /  1219 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 向前看向前走 于 2014-5-30 21:17 编辑

String ret ="a.b.c";
String[] data = ret.split(".");
为什么得不到结果

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

12 个回复

倒序浏览
data是一个数组,你需要通过for循环遍历出来
回复 使用道具 举报
lin' 发表于 2014-5-30 13:36
data是一个数组,你需要通过for循环遍历出来

你需要动手试一下,才知道我问的是什么
回复 使用道具 举报
你把“a.b.c”里的.改成其他字符(比如-+*之类的),因为.它找不出来
回复 使用道具 举报
lin' 发表于 2014-5-30 13:46
你把“a.b.c”里的.改成其他字符(比如-+*之类的),因为.它找不出来

为什么找不出来呢
回复 使用道具 举报
.是正则表达式里的一个关键字,如果没有经过转义split会把它当作一个正则表达式来处理的,所以要改成String[] data = ret.split("\\.");

import java.util.*;
class Test3
{
        public static void main(String[] args)
        {
                               
                String ret ="a.b.c";
                String[] data = ret.split("\\.");
                System.out.println(Arrays.toString(data));
        }
}

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
.是一个特定的字符,你必须通过转义计算机才能真正识别。你可以splict(//.)。
除了圆点还有一些其他特殊字符必须转义( ^ $等等),因为他们在java里是有特殊含义的。
你看我们在用类名调用方法的时候就是用的小圆点吧。
回复 使用道具 举报
Java对一些具体特殊含义的符号进行Split,解决方法如下

关于点的问题-->用string.split("[.]") 。

关于竖线的问题--> string.split("\\|")。

关于星号的问题--> string.split("\\*")。

关于斜线的问题--> sring.split("\\\\")。

关于中括号的问题用 sring.split("\\[\\]")。

代码如下:--------------------
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                String str = "a.b.c";
                String[] arr = str.split("[.]");
                for(int i=0; i<arr.length;i++){
                        System.out.println(arr[i]);
                }

希望对你有帮助。。。。
回复 使用道具 举报
应该要转义吧!!
回复 使用道具 举报
嗯,一同学习了。看了下资料,点“,”在正则中表示任意字符(不含换行回车符),看来这个地方必须要转义了。
回复 使用道具 举报
点是一个特殊字符。
回复 使用道具 举报
正好今天刚看到这,这个要转义的,好好再看一遍视频的吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马