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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

本帖最后由 匡文 于 2013-10-26 14:50 编辑
  1. import java.util.Arrays;

  2. public class SplitDemo {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 String s = "abcd.him";
  9.                 String[] strs = s.split(".");
  10.                 System.out.println(Arrays.toString(strs));
  11.         }

  12. }
复制代码
如上所示,用.去分割字符串就分不开,但是如果我换乘用c或者其它字母就可以分割成功,为什么?难道是split()中不支持"."的分割吗?API文档中也没查到相关说明呀。。。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

5 个回复

倒序浏览
split(String regex)  接收的是一个正则表达式的字符串, 在正则表达式中.代表任意字符, 所以不能切
写成“\\."才是按照.来切割
回复 使用道具 举报
转义字符,你值得拥有
  1. package com.yellow.chapteOne;
  2. import java.util.Arrays;

  3. public class SplitDemo {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 String s = "abcd.him";
  10.                 String[] strs = s.split("\\.");
  11.                 System.out.println(Arrays.toString(strs));
  12.         }

  13. }

复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
就是这个意思:

split(String regex)  接收的是一个正则表达式的字符串, 在正则表达式中.代表任意字符, 所以不能切
写成“\\."才是按照.来切割
  1. 下面有关转义字符的解释,你也看看吧
复制代码

  1.                 //'\'表示转义符号
  2.                 //它和紧跟它的字符共同构成转义字符,例如:“\n”表示换行,“\"”表示符号"等,在字符串中表示'\'要用“\\”
  3.                 //转义字符的出现就是为了避免出现二义性,二义性是在所有的编程语言中都不允许的
  4.                
  5.                 //例如这里打印"A"
  6.                 System.out.println("\"A\"");
  7.                
  8.                 //例如打印一个制表符
  9.                 System.out.println("hello\tjava");
  10.                
  11.                 /*
  12.                  * 其他的一些转义字符还有:
  13.                          \b:退格
  14.                          \\:反斜线
  15.                          \n:换行
  16.                          \r:回车
  17.                          \f:换页
  18.                          \t:制表符
  19.                  */

  20.         }

  21. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
转义字符,普通字符间的分割时一个空格,用空格分割是两个空格。
回复 使用道具 举报
这是正确的代码,我都测试过了:
public class SplitDemo {
        public static void main(String[] args) {
                String s = "abcd.him";
                String[] strs = s.split("\\.");
                for (int i = 0; i < strs.length; i++) {
                        System.out.println(strs[i]);
                }
        }
}
下面是一些我的总结:
在java.lang包中有String.split()方法,返回是一个数组
我在应用中用到一些,给大家总结一下,仅供大家参考:
1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"\\";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");

希望对楼主有帮助。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马