java 字符串分割

来源:互联网 发布:鳄鱼皮 知乎 编辑:程序博客网 时间:2024/05/17 03:09

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

1 0
原创粉丝点击