Ошибка при преобразовании строки в Int Java - PullRequest
0 голосов
/ 20 апреля 2020

Итак, я получаю строку в виде IP / PortNumber: WaitTime в виде строки. Я разделил эти два на ":", поэтому я получил две части: IP / Potnumber как одну и WaitTime как строку как другую. Я пытался преобразовать эту строку в int, но получаю сообщение об ошибке, что строка недопустима.

Ошибка:

This is an updated image showing the output of the second block of code. The print statmetn shows there are no blank spaces This is how i take the input from the user.[![][3] ] [3]

public static int GetJob (String recieved) {
    String[] arrOfJob = recieved.split(":");
    int accjob =0;
    try {
        accjob = Integer.parseInt(arrOfJob[1]);
    } catch(NumberFormatException ex){
        System.out.println(ex);
    }
    return accjob;
}


public static int GetJob (String recieved) {
    String[] arrOfJob = recieved.split(":");
    int accjob =0;
    System.out.print("/"+arrOfJob[1]+"/");
    try {
        accjob = Integer.parseInt(arrOfJob[1]);
    } catch(NumberFormatException ex){
        System.out.println(ex);
    }
    return accjob;
}

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Попробуйте instanceof в java и проверьте, выполняете ли вы синтаксический анализ строки или типа double или других типов данных.

Пример:

Integer i = 0;
if(i instanceof Integer) {
    System.out.println("true");
}

Вывод:

true

Убедитесь, что переменные должны иметь объект (Integer, Double, ..), а не примитивные типы (int, double, ..).

Причина возникновения NumberFormatException для непарсируемых значений.

0 голосов
/ 20 апреля 2020

Попробуйте это:

    public static int getJob(String input) {
        String[] split = input.split(":");
        try {
            return Integer.parseInt(split[1].trim());
        } catch (NumberFormatException ex) {
            ex.printStackTrace();
        }
        return -1;
    }
...