java 字符串分割

1.
public String substring(int beginIndex, int endIndex)
注:不包括endIndex位置的字符
例:

"abcdefghi".substring(4, 8)

“efgh”

a.subString(a.length()-3, a.length());

2.
public String[] split(String regex,int limit)
JDK 1.4 or later

    String sourceStr = "1,2,3,4,5";
    String[] sourceStrArray = sourceStr.split(",");

1
2
3
4
5

    int maxSplit = 3;
    sourceStrArray = sourceStr.split(",", maxSplit);

1
2
3,4,5

split 的实现直接调用的 matcher 类的 split 的方法。在正则表达式中有特殊字符时要进行转义
“|”,”*”,”+”前面加上”\”。
“\”要写成”\\”。
如果一个字符串中有多个分隔符,可以用”|”作为连字符。
如:String str = “Java string-split#test”,可以用Str.split(” |-|#”)把每个字符串分开

3.
StringTokenizer
JDK 1.0 or later
将字符串分解为标记。兼容性的原因而被保留的遗留类,在新代码中并不鼓励使用

    String ip = "192.168.128.33";
    StringTokenizer token=new StringTokenizer(ip,".");  
    while(token.hasMoreElements()){  
    System.out.print(token.nextToken()+"  "); 
    } 

但是StringTokenizer对于字符串”192.168..33”的分割,返回的字符串数组只有3个元素,对于两个分隔符之间的空字符串会忽略,这个要慎重使用。

String.split使用的是按顺序遍历的算法,时间复杂度较高O(m*n)
所以对于频繁使用字符串分割的应用,例如etl数据处理,使用StringTokenizer性能可以提高很多。

构造函数。
1. StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。
2. StringTokenizer(String str, String delim):构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。
3. StringTokenizer(String str, String delim, boolean returnDelims):构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。

方法。
1. int countTokens():返回nextToken方法被调用的次数
2. boolean hasMoreTokens() :返回是否还有分隔符。
3. boolean hasMoreElements() :结果同2。
4. String nextToken():返回从当前位置到下一个分隔符的字符串。
5. Object nextElement() :结果同4。
6. String nextToken(String delim):与4类似,以指定的分隔符返回结果。

String s = new String("The Java platform is the ideal platform for network computing");
StringTokenizer st = new StringTokenizer(s);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){
System.out.println( st.nextToken() );
           }

结果为:
Token Total: 10
The
Java
platform
is
the
ideal
platform
for
network
computing

String s = new String("The=Java=platform=is=the=ideal=platform=for=network=computing");
StringTokenizer st = new StringTokenizer(s,"=",true);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){
System.out.println( st.nextToken() );
}

结果为:
Token Total: 19
The
=
Java
=
platform
=
is
=
the
=
ideal
=
platform
=
for
=
network
=
computing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值