先看源代码
- /**
- *
- * @author 赵学庆 <a href="http://www.java2000.net">www.java2000.net</a>
- *
- */
- class T {
- public static void main(String args[]) {
- String num[] = new String[11];
- String sLine = "101494|360103660318444|2008/06/17|周润英|1292.0|3085.76|2778.28|912.91|106.0|||";
- num = sLine.split("\\|");
- int row = 1;
- for (String s : num) {
- System.out.println(row+++"="+s);
- }
- }
- }
运行结果为
1=101494
2=360103660318444
3=2008/06/17
4=周润英
5=1292.0
6=3085.76
7=2778.28
8=912.91
9=106.0
查看API,有一个
- public String[] split(String regex, int limit);
limit 参数控制应用模式的次数,从而影响结果数组的长度。
如果限制 n 大于零,那么模式至多应用 n> - 1 次,数组的长度不大于 n,并且数组的最后条目将包含除最后的匹配定界符之外的所有输入。
如果 n 非正,那么将应用模式的次数不受限制,并且数组可以为任意长度。
如果 n 为零,那么应用模式的次数不受限制,数组可以为任意长度,并且将丢弃尾部空字符串。 修改代码为
- /**
- *
- * @author 赵学庆 <a href="http://www.java2000.net">www.java2000.net</a>
- *
- */
- class T {
- public static void main(String args[]) {
- String num[] = new String[11];
- String sLine = "101494|360103660318444|2008/06/17|周润英|1292.0|3085.76|2778.28|912.91|106.0|||";
- num = sLine.split("\\|",-1); // 这里使用-1作为参数
- int row = 1;
- for (String s : num) {
- System.out.println(row+++"="+s);
- }
- }
- }
运行结果
1=101494
2=360103660318444
3=2008/06/17
4=周润英
5=1292.0
6=3085.76
7=2778.28
8=912.91
9=106.0
10=
11=
12=
<!>比较两种表示法
利用split函数:
- String s = new String ( " 2_8_7_4_3_9_1 " ) ;
- String [] arr = s . split ( " _ " ) ;
●利用StringTokenizer类:
- String s = new String ( " 2_8_7_4_3_9_1 " ) ;
- StringTokenizer commaToker = new StringTokenizer ( s , " _ " ) ;
- String [] arr = new String [ commaToker . countTokens ()] ;
<2>split用法详解
在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、如果用“.”作为分隔的话,必须是如下写法:String.split("//."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("//|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"//";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or");
测试程序如下:
public class StringSplit {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String a="acount=? and uu =? or n=?";
String b[]=a.split("and|or");
for(int i=0;i<=b.length;i++)
{
System.out.println(b[i]);
}
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String a="acount=? and uu =? or n=?";
String b[]=a.split("and|or");
for(int i=0;i<=b.length;i++)
{
System.out.println(b[i]);
}
}
}
输出结果:
输出结果:
acount=?
uu =?
n=?
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at com.ljj.string.StringSplit.main(StringSplit.java:14)