Я столкнулся с странным поведением Java во время выполнения. Вся информация находится на снимке экрана. Мое приложение не работает. Удивительно, но с одинаковыми входными данными в разное время можно обрабатывать правильно. Можете ли вы объяснить мне, в чем причина этого странного поведения? Я использую JDK 1.7.0_79 Здесь полную часть кода id = "common.dto.IdsFilter"
Странное поведение Java
private String[] splitPackageAndNameParts(String id) {
// check string not empty
if (StringUtils.isEmpty(id)) {
throw new IllegalArgumentException("Unexpected id : " + id);
}
// get last point index
int index = id.lastIndexOf(".");
// check index
if (index == 0 || index >= (id.length() - 1)) {
throw new IllegalArgumentException("Unexpected id : " + id);
}
// split
String pkgPart = index < 0 ? "" : id.substring(0, index + 1);
String namePart = id.substring(index + 1, id.length());
// return result
return new String[]{pkgPart, namePart};
}
Правильный результат, должен быть pkgPart = "common.dto."
, но во время выполнения он возвращает "common.dto"
(без точки)
http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557# 285557 –
Нам нужен * фактический код * здесь. Мы не можем помочь вам с скриншотом, так как * мы * не можем подключить это к нашим копиям IntelliJ, чтобы узнать, что происходит. – Makoto
Пожалуйста, отредактируйте свой ответ, чтобы уточнить: какие входные данные вы используете, каково ожидаемое поведение и какое сообщение об ошибке вы получите. И разместите код, который у вас есть (нет скриншота, но настоящий Java-код), чтобы мы могли вам помочь. –