2012-05-17 66 views
-7

我想從字符串中獲取一些值。例如:從Java中的字符串獲取特定值

String string= "Name: armand," + "Age: 22," + "etc"; 

我怎樣才能得到例如使用正則表達式的名稱?

我用正則表達式很糟糕,所以我不知道如何解決這個問題。

+8

那麼貴字符串看起來像這樣? '「名稱:armandAge:22」'...... – birryree

+0

您將它匹配到名稱後最後的所有內容 – keyser

+1

確切地說,域之間似乎沒有任何分隔符。 –

回答

1

取決於你真正想要做什麼,例如,如果你只想獲得給定鍵的值,假設鍵和值由​​冒號和鍵/值分隔逗號分隔,你可以拆分以這種方式串首先由逗號,然後用冒號:

String[] couple = string.split(","); 

for(int i =0; i < couple.length ; i++) { 
    String[] items =couple[i].split(":"); 
    items[0]; //Key 
    items[1]; //Value 
} 

如果你想用正則表達式,你可以這樣做的做到這一點:

String string = "Name:armand,Age:22,"; 
    Pattern pattern = Pattern.compile("(\\w+?):(\\w+?),"); 
    Matcher matcher = pattern.matcher(string); 
    while (matcher.find()) { 
     String key = matcher.group(1); 
     String value = matcher.group(2); 

     System.out.println("Key : " + key + " value : " + value); 
    } 
+0

謝謝。使用split很容易。我知道知道,我必須學習更多關於正則表達式:)。 –

3

對不起,它的樣子是這樣的名字:armand,年齡:22,等等。但是我在正則表達式中很糟糕,這對我來說很難解決。

鑑於String s = "Name:armand,Age:22";

這裏是一個暗示:

s.split(",")[0].split(":")會給你armand

s.split(",")[1].split(":")會給你22

不需要正則表達式的知識。

一些人,當遇到一個問題,認爲「我知道,我將使用 正則表達式。」現在他們有兩個問題。 - 傑米Zawinski

+0

你可以改變這個來使用'substring'。 'split'方法將任何輸入視爲RegEx並試圖編譯它,無論你是否意圖。 – adarshr

+0

@JarrodRoberson感謝它的工作 –

相關問題