2012-02-16 118 views
0

我有一個文件,它由諸如如何拆分字符串並提取特定元素?

20 19:0.26 85:0.36 1064:0.236 # 750 

我已經能夠由線,並將其輸出到控制檯線讀取它線。但是,我真正需要的是從每行中提取諸如「19:0.26」「85:0.36」之類的元素,並對它們執行某些操作。如何分割線條並獲取我想要的元素。

+0

需要1064:0.36也? – sgowd 2012-02-16 17:58:14

+0

是在這種情況下的分隔符空白? – 2012-02-16 18:00:50

回答

2

使用正則表達式:

Pattern.compile("\\d+:\\d+\\.\\d+"); 

然後你可以從這個模式最終創建一個Matcher對象使用它的方法find()

0

解析一行數據在很大程度上依賴於數據是什麼樣的,以及如何一致的是。單純從您的示例數據和「元素,如」你別說,這可能是那麼容易,因爲

String[] parts = line.split(" "); 
0

修改該代碼,按照你的,

public class JavaStringSplitExample{ 

    public static void main(String args[]){ 

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

    /* delimiter */ 
    String delimiter = "-"; 
    /* given string will be split by the argument delimiter provided. */ 
    temp = str.split(delimiter); 
    /* print substrings */ 
    for(int i =0; i < temp.length ; i++) 
    System.out.println(temp[i]); 

    /* 
    IMPORTANT : 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]); 

    } 

}