使用分隔符IndexOutOfBoundException

时间:2018-08-17 00:38:33

标签: java string delimiter

尝试用定界符分割字符串时遇到麻烦。一些示例输入是:

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中显示。然后,我将继续拆分第二个字符串。

有什么想法吗?在此先感谢!

1 个答案:

答案 0 :(得分:1)

您可以通过测试阵列的length来测试是否将多少部分放入了阵列。

例如

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