У меня есть что-то вроде:Как избежать исключения StringIndexOutOfBoundsException, если подстрока не находится в моей исходной строке?
String idCodice = cessionarioCommittente.substring(
cessionarioCommittente.indexOf("<IdCodice>") + 10,
cessionarioCommittente.indexOf("</IdCodice>"));
используется для извлечения значения внутри тега XML-документа, представленного содержимого переменной cessionarioCommittente
String.
Проблема в том, что тег <IdCodice>
может отсутствовать в строке cessionarioCommittente
.
Так что в этом случае я получаю это исключение:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -10
at java.lang.String.substring(String.java:1937)
at it.sistinf.ediwea.fepa.LoadFatturePa.run(LoadFatturePa.java:103)
at it.sistinf.ediwea.fepa.TestLoadFatturePa.main(TestLoadFatturePa.java:18)
Как я могу решить эту проблему? Например, проверяя, существует ли это значение в строке?
Для этого вы должны использовать синтаксический анализатор XML. – Jens