我收到错误:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1 at Section5.TestMain.main(TestMain.java:51)
public class TestMain {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the shipment details :");
String userDetail = sc.nextLine();
String userDetailParts[] = userDetail.split(",");
//System.out.println(Arrays.toString(userDetailParts));
Shipment shipment = new Shipment();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
shipment.setid(userDetailParts[0]);
shipment.setsourcePort(userDetailParts[1]);
shipment.setdestinationPort(userDetailParts[2]);
shipment.setexpectedDeliveryDate(sdf.parse(userDetailParts[3]));
shipment.setcustomerName(userDetailParts[4]);
System.out.println("Enter the number of shipment status :");
int n = sc.nextInt();
SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
for (int i=1;i <= n;i++) {
System.out.println("Enter the shipment status " +i+ " details :");
String userDetail1 = sc.next();
String userDetailParts1[] = userDetail1.split(",");
ShipmentStatus SS= new ShipmentStatus();
for (int j = 0; j < userDetail1.length(); j++)
{
SS.setarrivalPort(userDetailParts1[0]);
SS.setdeparturePort(userDetailParts1[1]); //error is observed on this line
SS.setarrivedDate(sdf1.parse(userDetailParts1[2]));
SS.setdstatus((userDetailParts1[3]));
}
//System.out.println(Arrays.toString(userDetailParts1));
}
ShipmentBO bo = new ShipmentBO();
bo.displayStatusOfShipment(shipment);
}
}
输入和错误如下:
输入装运详细信息:
香港STAJU01,科钦,2017年5月20日,karthick
输入装运状态的编号:
3
输入装运状态1详细信息:
香港,加尔各答,2017年5月17日,抵达
线程中的异常";主";java.lang.ArrayIndexOutOfBoundsException:索引1超出长度1的界限在Section5.TestMain.main(TestMain.java:51(
问题就在这里:
String userDetail1 = sc.next();
String userDetailParts1[] = userDetail1.split(",");
和:
Hong Kong,Kolkata,17-05-2017,arrived
sc.next((将捕获单个字符串令牌,因此";洪";。我想你想要sc.nextLine((。