为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蓝山帝景 2021-11-24 16:11:39
如果客户端想要将消息存储到 txt 文件中,用户可以使用关键字 msgstore 后跟引号。示例: msgstore“ABC 就像 123 一样简单”我正在尝试将 msgstore 和引号拆分为数组中的两个单独元素。我目前拥有的是:String [] splitAdd = userInput.split(" ", 7);但我面临的问题是它在第二个空格后再次分裂,因此它是:splitAdd[0] = msgstoresplitAdd[1] = "ABCsplitAdd[2] = is我的问题是,如何将后半部分组合成一个元素长度未知的单个数组,以便它是:splitAdd[0] = msgstoresplitAdd[1] = "ABC is as easy as 123"我是 Java 新手,但我知道在 python 中使用 (7::) 之类的东西很容易做到。有什么建议吗?
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

当你只需要 2 个元素时,为什么你有limit参数7?尝试将其更改为2:-

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

或者

String splitAdd[] = new String[]{"msgstore", s.split("^msgstore ")[1]};


查看完整回答
反对 回复 2021-11-24
?
幕布斯7119047

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)};


查看完整回答
反对 回复 2021-11-24
?
MMMHUHU

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));


查看完整回答
反对 回复 2021-11-24
  • 3 回答
  • 0 关注
  • 246 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信