我有這個Key - Value
,我想他們彼此分開並獲得返回象下面這樣:
String a = "Key"
String b = "Value"
那麼最簡單的方法呢?
我有這個Key - Value
,我想他們彼此分開並獲得返回象下面這樣:
String a = "Key"
String b = "Value"
那麼最簡單的方法呢?
String[] tok = "Key - Value".split(" - ", 2);
// TODO: check that tok.length==2 (if it isn't, the input string was malformed)
String a = tok[0];
String b = tok[1];
" - "
是一個正則表達式;如果您需要對構成有效分隔符的內容(例如,使空格可選,或允許多個連續空格)更靈活,可以對其進行調整。
String[] parts = str.split("\\s*-\\s*");
String a = parts[0];
String b = parts[1];
+1我更喜歡比''更靈活的正則表達式 - 「' – Thomas
int idx = str.indexOf(" - ");
String a = str.substring(0, idx);
String b = str.substring(idx+3, str.length());
split()
是多一點比計算密集型indexOf()
,但如果你不需要每秒分割數十億次,你不在乎。
String s = "Key - Value";
String[] arr = s.split("-");
String a = arr[0].trim();
String b = arr[1].trim();
作爲一個長一點的選擇:
String text = "Key - Value";
Pattern pairRegex = Pattern.compile("(.*) - (.*)");
Matcher matcher = pairRegex.matcher(text);
if (matcher.matches()) {
String a = matcher.group(1);
String b = matcher.group(2);
}
我喜歡用StringUtils.substringBefore和StringUtils.substringAfter從講座敬愛的Jakarta Commons Lang庫。
你試過了String.split(...)嗎? – Gandalf
我是一名php開發人員,所以它有點不同,但現在我知道我的錯誤,它在分割方法中使用單引號 – Peril
@Salah Yahya:下次嘗試提一下您已經在問題中嘗試過的內容,如此一來對未來的遊客有更多的價值。我甚至鼓勵你重寫這個問題,以表明更多的努力。 –