Java:如何在空格后将字符串拆分为两个单独的数组?

Java:如何在空格后将字符串拆分为两个单独的数组?,java,Java,如果客户端希望将消息存储到txt文件中,用户将使用关键字msgstore,后跟引号 例如: msgstore“ABC就像123一样简单” 我试图将msgstore和quote拆分为数组中两个单独的元素 我目前拥有的是: String [] splitAdd = userInput.split(" ", 7); 但我面临的问题是,它在第二个空格后再次分裂,因此: splitAdd[0] = msgstore splitAdd[1] = "ABC splitAdd[2] = is splitAd

如果客户端希望将消息存储到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"
我的问题是,如何将后半部分组合成一个元素长度未知的数组,以便:

splitAdd[0] = msgstore
splitAdd[1] = "ABC
splitAdd[2] = is
splitAdd[0] = msgstore
splitAdd[1] = "ABC is as easy as 123"
我是java新手,但我知道用python使用(7::)之类的东西很容易做到


有什么建议吗

编辑

如果这些值需要在数组中,则

String[] arr = { str.substring(0, ind), str.substring(ind)};

当您只需要两个元素时,为什么将
limit
参数设置为
7
?请尝试将其更改为
2
:-

String splitAdd[] = s.split(" ", 2);

您可以使用RegExp:


Properties类是为此用例而设计的,但是它希望您按照如下方式格式化“消息”:msgname=您希望与此属性名称关联的消息。如果您愿意以这种方式格式化消息,只需将它们放在文本文件中,然后使用load方法。下面是指向Pyt的一些有用文档的链接hon example似乎没有在空格上拆分字符串,它似乎应用了一个子字符串。也许你只是在寻找
userInput。子字符串(9)
(相当于python
userInput[9://code>)?让我好奇-为什么要否决?
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));
}
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));