我有这个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:下次尝试提一下您已经在问题中尝试过的内容,如此一来对未来的游客有更多的价值。我甚至鼓励你重写这个问题,以表明更多的努力。 –