如果客户端想要将消息存储到txt文件中,用户使用关键字msgstore后跟引号。
示例:msgstore
“ABC就像123一样简单”
我试图将msgstore和quote拆分为数组中两个独立的元素。
我目前拥有的是:
String [] splitAdd = userInput.split(" ", 7);
但我面临的问题是,它在第二个空格后再次分裂,因此它是:
splitAdd[0] = msgstore splitAdd[1] = "ABC splitAdd[2] = is
我的问题是,如何将后半部分组合成具有未知长度元素的单个数组,以便:
splitAdd[0] = msgstore
splitAdd[1] = "ABC is as easy as 123"
我是java新手,但我知道在python中使用(7::)之类的东西很容易做到。
有什么建议吗?
您可以使用RegExp:Demo
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字符串:
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));
第一个索引上的子字符串
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)};
当您只需要2个元素时,为什么将限制参数设置为7?尝试将其更改为2:-
String splitAdd[] = s.split(" ", 2);
或
String splitAdd[] = new String[]{"msgstore", s.split("^msgstore ")[1]};
问题内容: 假设我有一个字符串 我想通过空格分隔符将其拆分为字符串数组。我还想保留值之间的单个空格,而忽略多个空格。 做这个的正则表达式是什么? 问题答案: 首先摆脱多个空格: 然后使用split方法将字符串拆分为数组
问题内容: 欲分割为4的阵列,以利用 这是我的代码: 但是,结果标记是一个空数组:[],而不是 我想要的4数组。 我已经测试过更改一点: 这次的结果标记为。这与我想要的接近,但是我真的不想在拆分之前添加此“ 1”。 问题基本上是,如果它仅包含空元素,它将返回一个空数组。 您能帮助解决问题吗? 问题答案: 您需要使用带有limit参数的重载方法。 从文档(重点是我的): limit参数控制应用图案的
问题内容: 我需要将一个String拆分为单个字符String的数组。 例如,拆分“ cat”将得到数组“ c”,“ a”,“ t” 问题答案: 这将产生
给我一个字符串“23 45”,我需要得到两个值为23的变量(int a)和值为45的变量(int b)
问题内容: 我有这串 如何将此字符串拆分为每个子字符串包含2个字符的子字符串?我很困惑,因为我找不到分隔符来分隔它们。 问题答案:
问题内容: 我试图在网上四处寻找将字符串拆分为字符数组的答案,但似乎找不到一个简单的方法 似乎不像Ruby那样工作。有没有一种简单的方法可以不循环? 问题答案: