`
HowieChih
  • 浏览: 1881 次
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java中的字符串分割

 
阅读更多

1、使用String类的split方法

 

public String[] split(String regex)

 

使用正则表达式进行匹配分割,该方法效率比较低。

注意,该方法相当于split(String regex, 0)方法,在匹配到的情况下,结尾的空字符串将被丢弃(这里不是空格字符串)。如果没有匹配到任何东西的话,则返回数组只有原字符串。

 

String str = "";
String targets[] = str.split("\\+");
for(String target : targets){
	System.out.println(target);
}
//未匹配到,返回整个字符串

str = "A+A";      //返回数组长度为2,值为{"A", "A"}
str = "+++++";    //返回数组长度为0,因为尾部空字符串被删除了
str = "+00";      //返回数组长度为2,值为{"", "00"}
str = "AAA"       //返回数组长度为1,值为{"AAA"}

 

2、使用java.util.StringTokenizer类

 

构造方法:

StringTokenizer(String str)

StringTokenizer(String str, String delim)

StringTokenizer(String str, String delim, boolean returnBlims)

str需要进行分割的字符串,delim分割符,默认为" \t\n\r\f"(the space character, the tab character, the newline character, the carriage-return character回车换行, the form-feed character制表符),returnBlims返回结果中是否包含分割符

 

部分方法:

int countTokens()

boolean hasMoreTokens()

boolean hasMoreElements() //与hasMoreTokens一样的作用

String nextToken()

Object nextToken() //除了返回是Object外,效果与nextToken一样

public void testTokenizer(){
	StringTokenizer stringTokenizer = new StringTokenizer("00+00", "+", true);
	System.out.println(stringTokenizer.countTokens());
	while(stringTokenizer.hasMoreTokens()){
		System.out.println(stringTokenizer.nextToken());
	}
}

//00 00
如果被匹配字符串为++00++,则结果长度为1,值为00

 

3、使用java.util.regex.Pattern类

Pattern pattern = Pattern.compile("\\+");
String results[] = pattern.split("++00+00++");
for(String result : results){
	System.out.println(result);
}

//{"", "", "00", "00"}

 看来匹配规则和String.split()相同

 

4、使用subString()和indexOf()

public void testSubStringIndexOf() {
	String str = "+00+";
	ArrayList<String> results = new ArrayList<String>();
	while (true) {
		int j = str.indexOf("+");
		if (j < 0) {
			break;
		}
		results.add(str.substring(0, j));
		str = str.substring(j + 1);
	}
	results.add(str);

	for (String result : results) {
		System.out.println(result);
	}
}

 

 结果为:"" "00" ""

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics