黑马程序员技术交流社区
标题:
为什么split()分割字符串失败?
[打印本页]
作者:
匡文
时间:
2013-10-25 23:09
标题:
为什么split()分割字符串失败?
本帖最后由 匡文 于 2013-10-26 14:50 编辑
import java.util.Arrays;
public class SplitDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "abcd.him";
String[] strs = s.split(".");
System.out.println(Arrays.toString(strs));
}
}
复制代码
如上所示,用.去分割字符串就分不开,但是如果我换乘用c或者其它字母就可以分割成功,为什么?难道是split()中不支持"."的分割吗?API文档中也没查到相关说明呀。。。
作者:
murder_fol
时间:
2013-10-25 23:18
split(String regex) 接收的是一个正则表达式的字符串, 在正则表达式中.代表任意字符, 所以不能切
写成“\\."才是按照.来切割
作者:
黄小贝
时间:
2013-10-25 23:20
转义字符,你值得拥有
package com.yellow.chapteOne;
import java.util.Arrays;
public class SplitDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "abcd.him";
String[] strs = s.split("\\.");
System.out.println(Arrays.toString(strs));
}
}
复制代码
作者:
wenbaoxing
时间:
2013-10-26 00:52
就是这个意思:
split(String regex) 接收的是一个正则表达式的字符串, 在正则表达式中.代表任意字符, 所以不能切
写成“\\."才是按照.来切割
下面有关转义字符的解释,你也看看吧
复制代码
//'\'表示转义符号
//它和紧跟它的字符共同构成转义字符,例如:“\n”表示换行,“\"”表示符号"等,在字符串中表示'\'要用“\\”
//转义字符的出现就是为了避免出现二义性,二义性是在所有的编程语言中都不允许的
//例如这里打印"A"
System.out.println("\"A\"");
//例如打印一个制表符
System.out.println("hello\tjava");
/*
* 其他的一些转义字符还有:
\b:退格
\\:反斜线
\n:换行
\r:回车
\f:换页
\t:制表符
*/
}
}
复制代码
作者:
小夕
时间:
2013-10-26 07:16
转义字符,普通字符间的分割时一个空格,用空格分割是两个空格。
作者:
1961993790
时间:
2013-10-26 09:00
这是正确的代码,我都测试过了:
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");
希望对楼主有帮助。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2