Перемены и методы в java

424
18 марта 2018, 20:51

Написал код, который выполняет такие задания как: 1)Вывести последний символ числа(число должно состоять из трёх цифр). 2)Вывести десяток из числа(число должно состоять из двух цифр). 3)Просуммировать все цифры числа(число должно состоять из трёх цифр). Хочу теперь расписать эти задачи в отдельные методы и вызвать их в одном классе. Как это сделать не создавая каждый раз новые переменные?

P.S. Много переменных, которые возможно и не нужны из-за того что задания выполнялись в перемешку и всё в один код писалось

public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    String number = scan.nextLine();
    System.out.println("Введите пожалуйста число");
    String x = scan.nextLine();
    String lastchar = "Последний символ в строке";
    String tenthx = "Десяток у двухзначного числа";
    int length = x.length();
    int last = x.length()-1;
    int tenth = x.length()-2;
    char lastch = x.charAt(last);
    String regex = "[0-9]+";//для проверки на число в строке
    char[] chArray = x.toCharArray()//для суммы всех цифер в числе
    char a1 = chArray[0];
    char a2 = chArray[1];
    char a3 = chArray[2];
    int x1 = Character.getNumericValue(a1);
    int x2 = Character.getNumericValue(a2);
    int x3 = Character.getNumericValue(a3);
    int sumx = x1+x2+x3;
    int num = Integer.parseInt(x);//Переводим строку в число
    if (length < 2) {
        System.out.print("Введите число в промежутке от 10 до 999");
    }
    if (length > 3) {
        System.out.print("Введите число в промежутке от 10 до 999");
    }
    if((num%2)==0){
        System.out.println("Число чётное");
    }
    else{
        System.out.println("Число нечётное");
    }
    for (int i = 0; i < chArray.length; i++){
        if(chArray[0] == 0){
            System.out.println("Первый символ числа не может быть 0");
        }
    }
    if (x.matches(regex) == true){
        System.out.println("Вы ввели " + x);
    }
    else{
        System.out.println("Введите пожалуйста число");
    }
    if (length == 3){
        System.out.println(lastchar + " " + chArray[2]);
        System.out.println("Сумма трех цифр данного числа " + sumx);
    }
    if (length == 2) {
        System.out.print(tenthx + " " + chArray[0]);
    }
Answer 1

n % 10 = получаете последнюю цифру
n % 100 = получаете последний десяток
sum = (n / 100) + ((n / 10) % 10) + (n % 10) - сумма цифр
Для того что бы при отрицательных числах не было минуса перед числом, присвойте n = abs(n), модуль этого же числа.
То что у вас фиксированое количество цифр, существенно упрощает задачу, и это задание вообще можно решить всего лишь одной переменной:

public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    System.out.println("Введите пожалуйста число");
    int x = (int) scan.nextLine(); //Можно даже nextInt() если не ошибаюсь
    System.out.println("Последн.символ" + getLast(x));
    System.out.println("Десяток" + getTen(x));
    System.out.println("Сумма" + getSum(x));
}

Методы getLast(),getTen(),getSum() вы должны написать сами, на основе того что я написал в самом начале

READ ALSO
Ошибка при создании элемента при помощи WindowManager( BadTokenException )

Ошибка при создании элемента при помощи WindowManager( BadTokenException )

Пытаюсь создать элемент поверх всех активити, получаю ошибку

267
GridBagLayout, фиксированная первая строка

GridBagLayout, фиксированная первая строка

Создаю динамически компоненты с менеджером GridBagLayoutКод(максимально упростил, чтобы убрать лишнее):

210
pom.xml: run - edit configuration

pom.xml: run - edit configuration

Создал первый проект, добавил первую зависимость, но проект не build'итсяВ чем проблема? Что делать?

225