我有一個文件,它由諸如如何拆分字符串並提取特定元素?
20 19:0.26 85:0.36 1064:0.236 # 750
我已經能夠由線,並將其輸出到控制檯線讀取它線。但是,我真正需要的是從每行中提取諸如「19:0.26」「85:0.36」之類的元素,並對它們執行某些操作。如何分割線條並獲取我想要的元素。
我有一個文件,它由諸如如何拆分字符串並提取特定元素?
20 19:0.26 85:0.36 1064:0.236 # 750
我已經能夠由線,並將其輸出到控制檯線讀取它線。但是,我真正需要的是從每行中提取諸如「19:0.26」「85:0.36」之類的元素,並對它們執行某些操作。如何分割線條並獲取我想要的元素。
使用正則表達式:
Pattern.compile("\\d+:\\d+\\.\\d+");
然後你可以從這個模式最終創建一個Matcher對象使用它的方法find()
。
Java字符串split方法,你可以調用
String [] stringArray = "some string".split(" ");
,如果你想這樣就可以符合特定字符拆斷的,您可以使用正則表達式。
字符串文件: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
模式文件(用於製備正則表達式): http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
解析一行數據在很大程度上依賴於數據是什麼樣的,以及如何一致的是。單純從您的示例數據和「元素,如」你別說,這可能是那麼容易,因爲
String[] parts = line.split(" ");
修改該代碼,按照你的,
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]);
}
}
需要1064:0.36也? – sgowd 2012-02-16 17:58:14
是在這種情況下的分隔符空白? – 2012-02-16 18:00:50