2013-02-05 170 views
-2
String str=(37.028994, 35.26719589999993); 

我必須在單獨的變量中檢索這些值。是否可以幫助獲取這些值?從字符串變量中提取值

例如,輸出應該是以下類型。

a=37.028994 
b=35.26719589999993 

在此先感謝!

+3

多麼奇怪的'String'表示形式。它會被編譯? – Andremoniy

+0

你的意思是'「(37.028994,35.26719589999993)」'或'「37.028994,35.26719589999993」'還是什麼? –

+0

我的意思是(37.028994,35.26719589999993) –

回答

5
String str="(37.028994, 35.26719589999993)"; 
    str = str.substring(str.indexOf("(")+1 , str.indexOf(")")); 
    String[] s = str.split(","); 
    double a = Double.parseDouble(s[0]); 
    double b = Double.parseDouble(s[1]); 
0
Matcher m = Pattern.compile ("\\d+\\.\\d+").matcher (str); 
m.find(); 
double a = Double.parseDouble (m.group()); 
m.find(); 
double b = Double.parseDouble (m.group()); 
+0

注意,你正在給字符串分配一個double。 – Gamb

+0

似乎不必要的複雜(正則表達式等),Achintya Jha的答案更重要。 – j0ntech

+0

支架是否屬於字符串的一部分並不明確,一般情況下分隔符是什麼。 Jha的回答在第二部分留下了額外的空間,幸運的是,它並沒有打破parseDouble。 –

1

我想你的意思是這樣的:String str = "37.028994, 35.26719589999993";

對於它們,您可以使用str.split(",");方法,然後分割字符串數組的每個元素做一個Double.parseDouble()

1

首先,你需要在拳頭地方的String一通......所以我會承擔的代碼應該是:

String str="37.028994,35.26719589999993"; 

然後你可以使用String.split(",")返回一個字符串數組:

String[] splits = str.split(","); 

現在做你喜歡的數組。