可能重复:
string split in java
我有这个Key - Value
,我想将它们彼此分开并得到如下所示的回复:
String a = "Key"
String b = "Value"
最简单的方法是什么?
答案 0 :(得分:9)
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];
" - "
是正则表达式;如果您需要更灵活地构建有效的分隔符(例如,使空格可选,或允许多个连续的空格),则可以进行调整。
答案 1 :(得分:5)
String[] parts = str.split("\\s*-\\s*");
String a = parts[0];
String b = parts[1];
答案 2 :(得分:3)
int idx = str.indexOf(" - ");
String a = str.substring(0, idx);
String b = str.substring(idx+3, str.length());
split()
比indexOf()
计算密集程度更高,但如果你不需要每秒分割数十亿次,你就不在乎了。
答案 3 :(得分:2)
String s = "Key - Value";
String[] arr = s.split("-");
String a = arr[0].trim();
String b = arr[1].trim();
答案 4 :(得分:2)
我喜欢使用下面的Jakarta Commons Lang库中的StringUtils.substringBefore和StringUtils.substringAfter。
答案 5 :(得分:1)
类似
String[] parts = "Key - Value".split(" - ");
String a = parts[0];
String b = parts[1];
答案 6 :(得分:1)
作为一个更长的选择:
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);
}