Эта ошибка трудно отладить. Это также происходит не регулярно. Может ли кто-нибудь помочь, пожалуйста? Возможно ли, что метод substring
нарушен?StringIndexOutOfBoundsException: индекс строки из диапазона 32 в цикле
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 32
at java.lang.String.substring(String.java:1765)
at mmk.basej.main(basej.java:186)
Error in line: "tmp1 = filePathShort1.substring(0, 10)"
Вот мой код:
String tmp = null;
String pdf_name = null;
for (int z = 0; z < list_chek.length; z++) {
if (list_chek[z].toString().indexOf("pdf") > 0 | list_chek[z].toString().indexOf("tif") > 0 | list_chek[z].toString().indexOf("jpg") > 0) {
String filePath1 = new String();
String filePathShort1 = new String();
String tmp1 = null;
filePath1 = dir + list_chek[z].toString();
filePathShort1 = list_chek[z].toString();
tmp1 = filePathShort1.substring(0, 10)
+ filePathShort1.substring(20, filePathShort.indexOf("tsd7")-1)
+ "_"
+ filePath1.substring(
filePath1.indexOf("tsd7"), filePath1
.length() - 4);
if (name_no_time.equals(tmp1)) {
//System.out.println(name_no_time+" ---- "+tmp1);
System.out.println("PDF_NAME " + list_chek[z].toString());
pdf_name = list_chek[z].toString();
}
else if ((list_chek[z].toString().indexOf("jpg") > 0) && ((name_no_time + "_1").equals(tmp1))) {
System.out.println("JPG_NAME " + list_chek[z].toString());
pdf_name = list_chek[z].toString();
}
}
}
StringIndexOutOfBounds довольно понятно. – khelwood
Кроме того, я думаю, что не возможно, что 'tmp1 = filePathShort1.substring (0, 10)' отвечает за вашу ошибку, поскольку из [документации Java API StringIndexOutOfBoundsException] (https://docs.oracle.com/javase/7/ docs/api/java/lang/StringIndexOutOfBoundsException.html) _Thrown by String, чтобы указать, что индекс либо отрицательный, либо больше размера строки. Для некоторых методов, таких как метод charAt, это исключение также генерируется, когда индекс равен размеру строки ._. Вероятно, ваша ошибка связана с другой строкой вашего кода. –
Это что-то о вычислении tmp1. tmp1 = 2017-02-02005002801AFAC_tsd7 и filePathShort1 = 2017-02-02_15-32-46_005002801AFAC_tsd7.pdf – antbug