java 用空格分割字符串,遍历每个元素
不用 split( " " ) 的方法,写了半天,写出来一个 do while 。。。do while 看着太难看,改成 while。
如果用 StringTokenizer ,就比较简单了。StringTokenizer 的缺点是无法返回索引。
// 计算空格的索引,遍历字符串
String re1 = "CS. CS. CS is an FPS. CS. ";
int inA = 0; // 第 1 个索引
int inB = re1.indexOf( " ", inA + 1 ); // 第 2 个索引
while( inA != -1 ) {
// 字符串结尾没有空格时
if ( inB == -1 ) {
inB = re1.length();
}
String str = re1.substring( inA, inB ).trim();
print( inA+" - "+inB +" - "+ str );
// 字符串结尾没有空格时,退出循环
if ( inB == re1.length() ) {
break;
} else {
// 保存前一个元素结尾的索引,准备下一次循环
inA = inB;
inB = re1.indexOf( " ", inA + 1 );
}
}
-------------------------------------------------------------// 用 StringTokenizer 遍历StringTokenizer st=new StringTokenizer( re1," ");while( st.hasMoreTokens() ) { print( st.countTokens() +" - "+ st.nextToken() ); }
-------------------------------------------------------------
// 用引号分割字符串
String in = " \"CS\" \" cs \" \"CS\" cs ' we ' 'WE' 'WE ~ ' hello ";
// 用 StringTokenizer 遍历字符串
StringTokenizer stk1 = new StringTokenizer( in, "\"" );
int totalCount= stk1.countTokens();
System.out.println( totalCount );
while( stk1.hasMoreTokens() ) {
String temp = stk1.nextToken();
String re = temp.trim();
if ( !re.equals( "" ) ) {
String result = stk1.countTokens() +" - "+ re;
System.out.println( result );
}
}