2012-07-31 58 views
2

我有一個字符串,我想單獨分割值。使用分隔符分割字符串-Javascript

舉例來說,我想分割以下字符串:

  Test1 Avg. running Time: 66,3 [ms], (Ref: 424.0) ===> Well done, It is 80% faster 

我想66,3 [毫秒] seperately和參考價值seperately。

如果你們中的任何人都可以建議我哪種方法可以做到這一點,那將會很有幫助。

我應該使用分隔符(:)嗎?但是,在這種情況下,我收到輸出

  66,3 [ms], (Ref: 424.0) ===> Well done, It is 80% faster 

或者我應該使用「正則表達式」?

回答

1

對於這種情況,您可以使用.split(", ");,因爲','在數字之外有空白。

還可以看看this post爲解析器做好準備。

+1

如果我們用'「分開,」結果是:'Test1 Avg。運行時間:66.3 [ms]','(Ref:424.0)===>幹得好',速度快80%。這需要做更多的工作才能獲得價值! – jelies 2012-07-31 12:29:59

+2

所以你可以在第一個split和str.substring(str.index)中使用str.substring(str.index(「:」)+ 1,str.index(「[」))。trim (「:」)+1,str.index(「)」))。trim()',在第二個。 – 2012-07-31 12:40:22

+0

謝謝@ cl-r ..它工作正常... – dmurali 2012-07-31 12:53:48

0

可以使用split()功能...

String s = "66,3 [ms], (Ref: 424.0) ===> Well done, It is 80% faster";

String[] arr = s.split(", ");

0

用這種方式

public class JavaStringSplitExample { 

    public static void main(String args[]) { 

     String str = "one-two-three"; 
     String[] temp; 

     String delimiter = "-"; 

     temp = str.split(delimiter); 

     for (int i = 0; i < temp.length; i++) 
      System.out.println(temp[i]); 

     /* 
     * NOTE : Some special characters need to be escaped while providing 
     * them as delimiters like "." and "|". 
     */ 

     System.out.println(""); 
     str = "one.two.three"; 
     delimiter = "\\."; 
     temp = str.split(delimiter); 
     for (int i = 0; i < temp.length; i++) 
      System.out.println(temp[i]); 

     /* 
     * Using second argument in the String.split() method, we can control 
     * the maximum number of substrings generated by splitting a string. 
     */ 

     System.out.println(""); 
     temp = str.split(delimiter, 2); 
     for (int i = 0; i < temp.length; i++) 
      System.out.println(temp[i]); 

    } 

} 
0

你可以試試這個正則表達式:

String test = "Test1 Avg. running Time: 66,3 [ms], (Ref: 424.0) ===> Well done, It is 80% faster"; 
    Pattern p = Pattern.compile("(\\d+[.,]?\\d+)"); 
    Matcher m = p.matcher(test); 
    m.find(); 
    String avgRunningTime = m.group(1); 
    m.find(); 
    String ref = m.group(1); 
    System.out.println("avgRunningTime: "+avgRunningTime+", ref: "+ref); 

這將打印:

avgRunningTime: 66,3, ref: 424.0 

你自然會想添加一些錯誤檢查(例如檢查m.find()是否返回true)。