我有一個構造函數接受一個字符串,看起來像「南行 - Metrotown」。Java拆分字符串ArrayIndexOutOfBoundsException
它所帶的字符串總是不同,但具有相同的格式:方向 - 位置。我正在使用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"));
結果打印出來鐵道鎮,但assertTrue線失敗。我能做些什麼來解決這個問題?感謝您的時間。
嘗試打印您傳遞給構造函數的參數。我懷疑它沒有'-'或其'''是不是你在你的分裂中使用的字符。或者,也許這個錯誤與'plat = splt [1]'行沒有關係;'但是對於你沒有向我們顯示的其他行。 – Pshemo
也許'splt = platform.split(「 - 」);'doesnt split(does not have'splt [1]')? – Sekula1991
嘗試'for(String str:platform.split(「 - 」))'看看你會得到什麼。什麼是splt的類型? – 2015-11-06 23:46:22