как я могу заставить свою программу принимать более 9-значных чисел?

В настоящее время я пишу небольшое приложение, которое проверяет простые числа. Это графический интерфейс, но у меня есть одна проблема. Я добавил в программу некоторые ограничения, согласно которым пользователи могут вводить числа только с помощью обработчика исключений numberformate, но всякий раз, когда пользователь вводит число, длина которого превышает 9 цифр, он больше не считает его числом. Есть ли решение этой проблемы? Я оставил свой код ниже.

static void validation() // This is what happens when the "Check" button is clicked
{


    // Retrieve information from the fields and print it out on the Frame
    if (jtfX.getText().trim().length() == 0) // Check if the field is empty
    {
        jlSolution.setText("You have not entered anything yet");

    }

    else // Otherwise...
    {

        try // In general....
        {

            if (Long.parseLong(jtfX.getText()) < 0) // Check if it is a negative value
            {
                                jlSolution.setText("The number you entered is less than zero");
            }
                            else // If it isn't...
            {
                                jlSolution.setText(new Algorithm(Integer.parseInt(jtfX.getText())).check()); // ....then check if this number is prime.
            }
        }

        catch (NumberFormatException nfe) // ... always catch those who refuse to follow simple rules!
        {
            jlSolution.setText("Numerical values only please. " + "You entered: " + jtfX.getText());

        }
    }

}

person Babatunde Omodayo    schedule 27.10.2012    source источник
comment
Больше кода плз, check() ? ALGORITHM()Одна вещь для более чем 9 цифр, вам нужно использовать BigInteger.   -  person Mukul Goel    schedule 27.10.2012
comment
Если long достаточно для ваших целей, это гораздо меньшее изменение, чем использование BigInteger.   -  person Daniel Fischer    schedule 27.10.2012


Ответы (1)


Предполагая, что класс Algorithim является специально написанным классом, вы можете заменить целочисленный аргумент в его конструкторе на BigInteger для хранения больших значений.

Вы бы обновили поле jlSolution следующим образом:

Algorithm algorithm = new Algorithm(new BigInteger(jtfX.getText()));
jlSolution.setText(algorithm.check()); 
person Reimeus    schedule 27.10.2012
comment
Большое спасибо, действительно ценю это. - person Babatunde Omodayo; 28.10.2012