按效率排:
1、StringTokenizer切割
是java.util中的一個類,包含的api有:
StringTokenizer的方法請參考上一篇。
其中,countTokens為length;nextToken可以獲取它的下一個字符串,其中delim為分隔符。
2、..split("*")分割;
最方便,運用最多的,不解釋。
String[] split = data.split("\n");
if (split != null && split.length != 0) {
for (int i = 0; i < split.length-1; i++) {
String[] split1 = split[i].split(":");
···
}
}
3、調用String自己的api subString()
運用2的代碼塊
String[] split = data.split("\n");
if (split != null && split.length != 0) {
for (int i = 0; i < split.length-1; i++) {
System.out.println(split[i]);
String time = split[i].substring(0, 16);//前半部分 16為index
System.out.println(time);
String num = split[i].substring(17);//剩余部分 index +2;
System.out.println(num);
}
}
輸出結果:
2019-01-08 21:55 136
2019-01-08 21:55
136
2019-01-08 22:00 86
2019-01-08 22:00
86
2019-01-08 22:04 136
2019-01-08 22:04
136
2019-01-08 22:09 86
2019-01-08 22:09
86
2019-01-08 22:12 136
2019-01-08 22:12
136
其中上面的split[i].substring(0, 15);15是我字符串我這邊功能需要寫死了的,你可以通過indexOf(int ch)獲取位置。
4、正則獲取時間,然后.replaceAll(String regex,String replacement)那時間用” “代替,剩下的字符串就是時間以外的字符串了。
實例:
以下實例使用了 split(string) 方法通過指定分隔符將字符串分割為數組:
JavaStringSplitEmp.java 文件
public class JavaStringSplitEmp {
public static void main(String args[]){
String str = "www-runoob-com";
String[] temp;
String delimeter = "-"; // 指定分割字符
temp = str.split(delimeter); // 分割字符串
// 普通 for 循環
for(int i =0; i < temp.length ; i++){
System.out.println(temp[i]);
System.out.println("");
}
System.out.println("------java for each循環輸出的方法-----");
String str1 = "www.runoob.com";
String[] temp1;
String delimeter1 = "\\."; // 指定分割字符, . 號需要轉義
temp1 = str1.split(delimeter1); // 分割字符串
for(String x : temp1){
System.out.println(x);
System.out.println("");
}
}
}
以上代碼實例輸出結果為:
www
runoob
com
------java for each循環輸出的方法-----
www
runoob
com
在本例子中用到 String 類的 split 方法,其實在字符串分割時可以調用 StringTokenizer,實例化一個 StringTokenizer 的對象,通過 hasMoreTokens() 與 nextToken()進行判斷並打印分割后的子字符串。具體代碼如下:
import java.util.;
import java.lang.;
public class Main {
public static void main(String args[]) {
String str="www.runoob.com";
// 實例化對象,並指向以 . 對 str 進行分割
StringTokenizer str2=new StringTokenizer(str, ".");
// 對 str2 遍歷並打印子字符串;
while(str2.hasMoreTokens()){
System.out.println(str2.nextToken());
}
}
}
輸出結果為:
www
runoob
com
