使用分隔符IndexOutOfBoundException的Java拆分字符串

使用分隔符IndexOutOfBoundException的Java拆分字符串,java,string,delimiter,Java,String,Delimiter,我在尝试按分隔符拆分字符串时遇到了一些问题。一些示例输入包括: 2@800:00 3. 4@9:00AM@1000:00 5@10:00AM@11:00AM@12下午1:00 我想使用分隔符@拆分字符串,将其限制为仅两次,并分配给不同的变量。这是我的密码: String[] separated; String day = null, text1 = null, text2 = null; separated = objects.get(position).split("@"

我在尝试按分隔符拆分字符串时遇到了一些问题。一些示例输入包括:

2@800:00
3.
4@9:00AM@1000:00
5@10:00AM@11:00AM@12下午1:00
我想使用分隔符
@
拆分字符串,将其限制为仅两次,并分配给不同的变量。这是我的密码:

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变量
8:00AM
分配给
text1变量
分配给
text2变量
。然后我执行一些逻辑以显示在UI中。然后我将继续分割第二个字符串


如何执行此操作?

您可以通过测试阵列的
长度来测试阵列中放入了多少个部件

e、 g


嘿,抱歉,只是一个快速检查,假设我想用另一个分隔符分割,我如何实现它?例如,2@8:00AM%user1。我想使用分隔符@和%。有可能吗?是的,
split
使用regex,所以在regex101.com上玩一玩,看看什么是有效的(可能是
split(“@|%”)
if (separated.length > 2) {
  text2 = separated[2];
}
else {
   text2 = "";
}