ファイルを読み込んでリストに追加し、リストを読み込んで文字列を分割して比較し、何かを実行します。 は、私はこの例外を取得:ArrayIndexOutOfBoundsExceptionが発生するのはなぜですか?
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
私は私のコードを修正する必要がありますか?
for (Productname m : listIP) {
if (m.getIdentifier() == null || m.getProductname() == null) {
addToNonSimilarList(m.getProductname());
} else {
String id = m.getIdentifier().replaceAll("(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])", " ").toUpperCase();
String product = m.getProductname().replaceAll("(?<=[A-Za-z])(?=[0-9])|(?<=[0-9])(?=[A-Za-z])", " ").toUpperCase();
id = id.replaceAll("\\s+", " ");
product = product.replaceAll("\\s+", " ");
if (!id.equalsIgnoreCase(product)) {
if (id.contains(" X ") && product.contains(" X ")) {
String[] ide = id.split(" (?=X\\s*\\d+)");
String[] prod = product.split(" (?=X\\s*\\d+)");
System.out.println(m.getMnemonic());
if (ide.length > 0 && prod.length > 0 && ide[1].trim().equalsIgnoreCase(prod[1].trim())) {
String[] i = ide[0].split(" (?=\\d+)");
String[] p = prod[0].split(" (?=\\d+)");
if (i[0].trim().equalsIgnoreCase(p[0].trim())) {
//do nothing
} else {
addToNonSimilarList(m.getProductname());
}
} else {
addToNonSimilarList(m.getProductname());
}
} else {
addToNonSimilarList(m.getProductname());
}
}
}
}
はい、この2つの 'ide [1] prod [1]'の2番目の要素が同じかどうかチェックしてください。 **より良い方法は何ですか?** – itro
@itro:少なくとも1つではなく、各配列に少なくとも2つの要素*があることを確認してください。 –