3 回答
TA贡献1820条经验 获得超9个赞
当你只需要 2 个元素时,为什么你有limit
参数7
?尝试将其更改为2
:-
String splitAdd[] = s.split(" ", 2);
或者
String splitAdd[] = new String[]{"msgstore", s.split("^msgstore ")[1]};
TA贡献1794条经验 获得超8个赞
第一个 indexOf 上的子字符串 "
String str = "msgstore \"ABC is as easy as 123\"";
int ind = str.indexOf(" \"");
System.out.println(str.substring(0, ind));
System.out.println(str.substring(ind));
编辑
如果这些值需要在一个数组中,那么
String[] arr = { str.substring(0, ind), str.substring(ind)};
TA贡献1834条经验 获得超8个赞
您可以使用正则表达式:演示
Pattern pattern = Pattern.compile("(?<quote>[^\"]*)\"(?<message>[^\"]+)\"");
Matcher matcher = pattern.matcher("msgstore \"ABC is as easy as 123\"");
if(matcher.matches()) {
String quote = matcher.group("quote").trim();
String message = matcher.group("message").trim();
String[] arr = {quote, message};
System.out.println(Arrays.toString(arr));
}
这比 substring 一个字符串更具可读性,但它显然更慢。作为替代方案,您可以使用 substirng 字符串:
String str = "msgstore \"ABC is as easy as 123\"";
int pos = str.indexOf('\"');
String quote = str.substring(0, pos).trim();
String message = str.substring(pos + 1, str.lastIndexOf('\"')).trim();
String[] arr = { quote, message };
System.out.println(Arrays.toString(arr));
添加回答
举报