【问题标题】:Java split string using delimiter IndexOutOfBoundException使用分隔符 IndexOutOfBoundException 的 Java 拆分字符串
【发布时间】:2018-08-17 00:38:33
【问题描述】:

尝试按分隔符拆分字符串时遇到了一些麻烦。一些示例输入是:

2@8:00AM
3
4@9:00AM@10:00AM
5@10:00AM@11:00AM@12:00PM

我想使用分隔符@ 拆分字符串,将其限制为仅两次并分配给不同的变量。这是我的代码:

String[] separated;
String day = null, text1 = null, text2 = null;
separated = objects.get(position).split("@");            
day = separated[0];
text1 = separated[1];
text2 = separated[2];

但是,我得到了一些 indexOutOfBoundException,因为有些字符串没有两个分隔符 @,其中一些超过了两个。

我想要的输出是第一个字符串,我将2 分配给day variable,将8:00AM 分配给text1 variable,将"" 分配给text2 variable。然后我执行一些逻辑以在 UI 中显示。然后我将继续拆分第二个字符串。

我该怎么做?

【问题讨论】:

    标签: java string delimiter


    【解决方案1】:

    您可以通过测试数组的length 来测试看有多少零件放入数组中。

    例如

    if (separated.length > 2) {
      text2 = separated[2];
    }
    else {
       text2 = "";
    }
    

    【讨论】:

    • 嘿抱歉,只是快速检查一下,假设我想用另一个分隔符拆分,我该如何实现?例如,2@8:00AM%user1。我想使用分隔符 @ 和 % 进行拆分。有可能吗?
    • 是的,split 使用正则表达式,所以在 regex101.com 上玩一下,看看有什么用(也许像 split("@|%") 这样的东西
    猜你喜欢
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多