2012-07-31 71 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)。