我有一個字符串,看起來是這樣的:Java:使用第一次出現的分離器從一個字符串中提取兩個字符串?
String a = "URL:www.blahblah.com:/username"
我希望能夠的:
第一次出現後的:
第一次出現,然後之前提取字符串的第一部分中的字符串的其餘部分
所以我最終會:
String one = "URL"
String two = "www.blahblah.com:/username"
感謝
我有一個字符串,看起來是這樣的:Java:使用第一次出現的分離器從一個字符串中提取兩個字符串?
String a = "URL:www.blahblah.com:/username"
我希望能夠的:
第一次出現後的:
第一次出現,然後之前提取字符串的第一部分中的字符串的其餘部分
所以我最終會:
String one = "URL"
String two = "www.blahblah.com:/username"
感謝
你有幾個選擇。你可以使用String#split(String, int)
有限制,
String a = "URL:www.blahblah.com:/username";
String [] res = a.split(":", 2);
System.out.println(Arrays.toString(res));
或者你可以使用indexOf(int)
,然後使用substring與相對指標,
int pos = a.indexOf(":");
String b = a.substring(0, pos);
String c = a.substring(pos+1);
System.out.printf("part 1 = %s, part 2 = %s%n", b, c);
這裏我得到(分別)
[URL, www.blahblah.com:/username]
part 1 = URL, part 2 = www.blahblah.com:/username
我會說你提供的第一個選項是一個整潔的整理。 像你提供的第二種選擇那樣做有什麼好處嗎? 謝謝 –
@莫。不要擔心這樣的微觀優化。選擇一個你喜歡的。 –
最後一個問題。 爲什麼在「:」之前有兩個反斜槓?它確保它被用作實際字符串而不是正則表達式保留符號後的值? –
String[] parts = a.split(":", 1);
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String,INT)
'a.split (「:」,2);',不是'a.split(「:」,1);' –
試試這個:
String a = "URL:www.blahblah.com:/username";
int index = a.indexOf(":");
String before = a.substring(0,index);
String after = a.substring(index+1);
如果使用split
,第二個冒號問題,你將結束3串,即 「URL」,「www.blahblah .com「和」/ username「,這不是你想要的,據我所知。但是,請注意該重載方法split(String, int)
會幫助你控制的應用分流模式的次數,所以你仍然可以做到這一點使用split
像這樣:
a.split(":",2);
有是名爲「split」的String類中的方法。
爲了您上面的字符串一個你可以使用:
a.split(':', 2);
它返回的字符串數組。 這裏第一個參數是reg-ex,第二個參數是你想要的字符串數量。
String one = a.substring(0, a.indexOf(":"));
String two = a.substring(a.indexOf(":") + 1, a.length());
你有什麼問題嗎? – Braj
我不想讓你爲我寫一堂課。 我有一個字符串,我希望能夠在第一次出現的「符號」在我的例子中分成兩部分:' –
回答下面... – 1baga