Java split String ArrayIndexOutOfBoundsException

时间:2015-11-06 23:37:25

标签: java string split indexoutofboundsexception

我有一个构造函数,其字符串看起来像“Southbound - Metrotown”。

它所接受的字符串总是不同但格式相同:方向 - 位置。我使用split()方法将此字符串拆分为连字符(unicode 44)。

构造函数和返回方法如下所示

String[] splt;
String dirn;
String plat;

public Arrival(String platform) {
    this.platform = platform;
    splt = platform.split("-");
    dirn = splt[0];
    plat = splt[1];
}
public String getTravelDirn() {
    return dirn.trim();
}
public String getPlatformName() {
    return plat.trim();
}

我可以打印出结果很好但是当我用JUnit测试时,

@Before
public void setUp() {
    arr = new Arrival(platform);
}

@Test
public void testArrivalGetPlatform() {
    System.out.println(arr.getPlatformName());
    assertTrue(arr.getPlatform().equals("Metrotown"));

结果打印出Metrotown,但assertTrue行失败。我该怎么做才能解决这个问题?谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

platform参数值中没有破折号。

如果没有进行拆分匹配,则整个字符串将作为单元素数组的第一个元素返回。尝试访问索引0以外的任何元素都将导致该异常。