Как сохранить введенные данные и определить тип данных в Java? - PullRequest
0 голосов
/ 23 апреля 2020

Я делаю программу, которая определяет тип входных данных t, целое или двойное. У меня пока нет следующего кода. Но я не знаю, как хранить введенные данные.

Код:

import java.io.*;
import java.util.Scanner;

public class HeightCalc {
    public static int temp,result;
    public static void main(String[] args) {

        Scanner input = new Scanner (System.in);

        if (input.hasNextInt()) {
            System.out.println("Integer.");
        }

        else if (input.hasNextFloat() || input.hasNextDouble()) {
            System.out.println("Double.");
        }
    }
}

Ответы [ 2 ]

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

если я правильно понял, вам нужно сохранить входное числовое значение в одной переменной?

Я бы создал Number inputValue переменную и в ней я бы сохранял значения из сканера.

        Number inputValue;

        Scanner input = new Scanner (System.in);

        if (input.hasNextInt())
        {
            inputValue = input.nextInt();
            System.out.println("int.");
        }  else if (input.hasNextFloat() || input.hasNextDouble())
        {
            inputValue = input.nextDouble();
            System.out.println("Double.");
        }

inputValue унаследует класс от .nextInt() или nextDouble().

Однако я бы рассмотрел возможность хранения ввода в одной переменной, чтобы избавиться от этого условия и извлечь из него другие числовые классы. ,

Пример для int

inputValue = input.nextDouble();

public int getIntValue(){
   return inputValue.intValue();
}
0 голосов
/ 23 апреля 2020

Если вы используете apache commons lib, вы можете использовать StringUtils и NumberUtils. В общем случае определите переменную для входных данных сканера и проверьте ее содержимое, проверка входных данных более ограничительна.

import java.io.*;
import java.util.Scanner;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math;

public class HeightCalc {
    public static int temp,result;
    public static void main(String[] args) {

        Scanner scanner = new Scanner (System.in);
        String input = scanner.nextLine();

  if (StringUtils.isNumeric(input))
  {
     System.out.println("Integer.");
  }

  else if (NumberUtils.isCreatable(input))
  {
      System.out.println("Double.");
  }

 System.out.println("Input:" + input);
}
}

Вы можете сохранить входные данные в переменной, как в примере выше.

String myInput = scanner.nextLine();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...