黑马程序员技术交流社区

标题: split方面的 [打印本页]

作者: 向前看向前走    时间: 2014-5-30 12:59
标题: split方面的
本帖最后由 向前看向前走 于 2014-5-30 21:17 编辑

String ret ="a.b.c";
String[] data = ret.split(".");
为什么得不到结果
作者: lin'    时间: 2014-5-30 13:36
data是一个数组,你需要通过for循环遍历出来
作者: 向前看向前走    时间: 2014-5-30 13:37
lin' 发表于 2014-5-30 13:36
data是一个数组,你需要通过for循环遍历出来

你需要动手试一下,才知道我问的是什么
作者: lin'    时间: 2014-5-30 13:46
你把“a.b.c”里的.改成其他字符(比如-+*之类的),因为.它找不出来
作者: 向前看向前走    时间: 2014-5-30 13:50
lin' 发表于 2014-5-30 13:46
你把“a.b.c”里的.改成其他字符(比如-+*之类的),因为.它找不出来

为什么找不出来呢
作者: never615    时间: 2014-5-30 14:06
.是正则表达式里的一个关键字,如果没有经过转义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));
        }
}

作者: 海世山盟    时间: 2014-5-30 14:29
.是一个特定的字符,你必须通过转义计算机才能真正识别。你可以splict(//.)。
除了圆点还有一些其他特殊字符必须转义( ^ $等等),因为他们在java里是有特殊含义的。
你看我们在用类名调用方法的时候就是用的小圆点吧。
作者: 路漫漫_求索    时间: 2014-5-30 14:57
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]);
                }

希望对你有帮助。。。。
作者: 凝霜的枯藤    时间: 2014-5-30 15:30
应该要转义吧!!
作者: 波涛    时间: 2014-5-30 15:33
嗯,一同学习了。看了下资料,点“,”在正则中表示任意字符(不含换行回车符),看来这个地方必须要转义了。
作者: 小周务商    时间: 2014-5-30 15:44
点是一个特殊字符。
作者: 张志民    时间: 2014-5-30 15:56
正好今天刚看到这,这个要转义的,好好再看一遍视频的吧




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