java核心技术第一册中关于流那一章里演示了四个例子,其中一个就是利用“|”做为分隔符来读取和写入字符串的操作。
我前两天刚学的流,还有一点印像,但是水平有限也回答不上楼主的问题。
同时借道问一下,明明“\t\n\r”是表示三个字符,为什么会是四个字符。我的认为是\t表示制表,\n表示回车,\r是什么就不知道了,那还有一个呢?
还有,即然StringTokenizer默认是使用“\t\n\r”,那当要查找分隔符的时候,这几个默认的分隔符是与的关系(即每一个都要求有才算有)还是或的关系(只要有其中一个就行了呢)?
我前两天刚学的流,还有一点印像,但是水平有限也回答不上楼主的问题。
同时借道问一下,明明“\t\n\r”是表示三个字符,为什么会是四个字符。我的认为是\t表示制表,\n表示回车,\r是什么就不知道了,那还有一个呢?
还有,即然StringTokenizer默认是使用“\t\n\r”,那当要查找分隔符的时候,这几个默认的分隔符是与的关系(即每一个都要求有才算有)还是或的关系(只要有其中一个就行了呢)?
\n表示回车,\r是什么就不知道了
>>错了,\n不是回车,\r才是
\n = newline 换行
\r = return 回车
http://www3.ccw.com.cn/club/bbs/showEssence.asp?id=18867
String src = "abc\t\r\n123"; List result = new ArrayList();
for( StringTokenizer st=new StringTokenizer(src, "\t\r\n"); st.hasMoreTokens(); ) {
result.add(st.nextToken());
}
assertEquals(2, result.size());
assertEquals("abc", result.get(0));
assertEquals("123", result.get(1));
>>
它们是或的关系,只要发现任何一个分隔符,就分割一次。
如
public static void main(String[] args) {
String s = "aaaa,bbbb.cccc;,dddd";
String[] sa = s.split("[,.;]");
for (int i = 0; i < sa.length; ++i) {
System.out.println(sa[i]);
}
}注意,分隔符参数是用正则表达式表示的
aaaa
bbbb
ccccdddd如果对 ;, 的分隔,不需要那个空串,可以修改正则表达式为
[,.;]{1,}