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