Список Java<String> для короткого

У меня есть этот список строк:

private final List<String> categoryList = Arrays.asList("27", "28, 96", "10", "15", "7", "98");

Из приведенного выше списка "28, 96" рассматривается как один элемент (не опечатка). Преобразование каждого из них в короткий не имеет никаких проблем, за исключением этого одного элемента:

for ( int m = 1; m < categoryList.size(); m++) {
    short layerValue = Short.parseShort(categoryList.get(m));
}

Я получаю эту ошибку при преобразовании "28, 96":

java.lang.NumberFormatException: For input string: "28, 96"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:492)
    at java.lang.Short.parseShort(Short.java:117)
    at java.lang.Short.parseShort(Short.java:143)

Но если я добавлю это прямо:

//pmTPSelectList[0].layerRateList = new short[] {layerValue};
pmTPSelectList[0].layerRateList = new short[] {28, 96};

Работает нормально. Итак, я запутался относительно того, почему это так, и если есть способ преобразовать его, так как мне нужно зациклить пару значений для замены layervalue (Short)??? ти

3 ответа

Решение

Вы должны разделить эту часть, а также в секунду для цикла

for (String shortstr : categoryList) {
    String[] splitstr = shortstr.split(',');
    for (String innershort: splitstr) {
        short layerValue = Short.parseShort(innershort.trim());
        // add it to a list
    }
}

Если вы анализируете: "10", "15" ты получишь new short[] {10, 15};
Если вы анализируете: "28, 96" вы получите ошибку.

Вы видите разницу? Вы говорите, что у вас нет опечатки, если это так, то вы намерены ошибаться.

Когда вы пытаетесь преобразовать "28, 96" в короткую, абсолютно нормально получить NumberFormatException так как запятая не допускается в shorts, В вашем примере у вас нет двух чисел, но вместо этого у вас есть строка "28, 96".

Запятая в строке pmTPSelectList[0].layerRateList = new short[] {28, 96}; интерпретируется как разделитель между двумя числами. Это не является частью этого (что это в первом случае).

Другие вопросы по тегам