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

Java split string using delimiter IndexOutOfBoundException

我在尝试按分隔符拆分字符串时遇到了一些问题。一些样本输入是:

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

我该怎么做?

您可以通过测试数组的length来测试数组中有多少部分。

例如

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