-8
Я озадачен, почему posOfDot
возвращается 15:Почему indexOf возвращает неверный индекс?
for(String l2 : list2){
System.out.println("l2FileNAme: "+l2);
int posOfI= l2.indexOf("_")+1;
System.out.println("posOfI: "+posOfI);
String l2FileName = l2.substring(0,posOfI);
System.out.println("l2FileNAme: "+l2FileName);
for(String l1 : list1){
int posOfDot= l2.indexOf(".");
System.out.println("posOfDot: "+posOfDot);
//substring the root of the file
//String l1FileName = l1.substring(0,posOfDot); //fails here as posOfDot exceeds string length in substring.
System.out.println("l1FileNAme: "+l1);
}
}
Выход:
l2FileNAme: scenario8_items.txt
posOfI: 10
l2FileNAme: scenario8_
posOfDot: 15
l1FileNAme: scenario8_.csv
Я ожидаю posOfDot быть 10, так же, как posOfI, но она возвращает 15. Как приехать?
Что я пробовал:
- LastIndexOf
- IndexOf
- как символ обозначения и обозначения строки ('' и "")
--EDIT--
В каждом списке (list1 и list2) содержится список имен файлов. Это не фактический файл, а просто имя файла.
Как мы должны знать, что находится в этих файлах? – m3th0dman
Я не ищу файл - я ищу имя файла. –
Возможно, использование правильной строки «String» принесет лучшие результаты? Типичный пример того, почему бы не назвать такие переменные, даже если вы думаете, что ничто не может пойти не так. 'int posOfDot = l2.indexOf (". ");' - это * точно *, где '.' находится в' l2' –