2013-03-11 24 views
-4

我新的Java和我有一個關於字符串採取字符串的一部分在Java中

一個問題,如果我有:

我怎樣才能獲得數123並將其存儲在另一串? 謝謝

+3

如果你寫在谷歌同樣的問題標題,就會有這個幾個答案。 – Lion 2013-03-11 21:28:43

回答

1

一個解決方案是根據:並返回第二部分splitString

String newString = example.split(":")[1]; 

如果您String可以是這樣的:PostID:123456 xy bla bla bla你可以這樣做:

String newString = example.split(":")[1].split(" ")[0]; //Will contain 123456 

example.split(":")[1]將包含123456 xy bla bla bla,然後我們根據空格分割,並返回第一個元素,其中wi將包含123456

請注意,此解決方案假定String的結構與您所說的完全相同。您可以實現更廣泛的絃樂更好的解決方案,如:

String example="PostID : 12312 xy abc asd "; 
Pattern p = Pattern.compile(":\\s*(.*?)\\s+"); 
Matcher m = p.matcher(example); 
if (m.find()) { 
    System.out.println(m.group(1)); //Will print 12312 
} 
+0

如果我有「PostID:123 xy」,我可以寫: System.out.println(example.split(「:」)[「」]);獲得號碼? – moonwalker 2013-03-11 21:21:22

+0

不,這是一種不同的情況。改變你的問題。我們誤解了你。 – Maroun 2013-03-11 21:21:55

+0

String example =「PostID:randomnumber xy abc」,無論它是什麼,我怎麼能得到隨機數? – moonwalker 2013-03-11 21:23:03

3

一個快速的方法是使用split方法:

String source = "PostID:123"; 
String[] tokens = source.split(":"); 
String numberString = tokens[1]; 

如果你知道源的確切格式,或者你知道,這種格式永遠不會改變,這是有效。

另一種方法是使用字符數組的StringBuilder(如果你不知道字符串的準確格式和不喜歡的正則表達式:)

StringBuilder b = new StringBuilder(); // or StringBuffer 
for (char c: source.toCharArray()) { 
    if (Character.isDigit(c)) { 
     b.append(c); 
    } 
} 
String numString = b.toString(); 
0

使用String分割方法。

編輯:據對另一個答案評論...提問者也有空間,所以我更新的正則表達式拆就:space

public class Test { 

    public static void main(String[] args) { 
    String example="PostID:123 xy zy"; 
    String[] vals = example.split(":|\\s"); 
    for (int i = 0; i < vals.length; i++){ 
     System.out.println(vals[i]); 
    } 
    } 

} 

給人

PostID 
123 
xy 
zy 
0
String example="PostID:123"; 

String numString = example.subString(example.lastIndexOf(":"));