使用Java中的Scanner类获取整数的特定数字

时间:2016-11-18 10:03:53

标签: java java.util.scanner

我刚刚开始学习Java(两个月还在计算),我仍然有很多问题需要学习。现在我想使用Scanner类将一个整数“除”成数字。我会用一个例子来解释自己:

我请求用户输入一个四位数的整数,比如8919。我想要做的是使用Scanner类来划分该整数并将其每个数字分配给一个变量;即a = 8b = 9c = 1d = 9

我肯定知道可以做到并且Scanner类是要走的路。我只是不知道如何正确使用它。有需要的菜鸟可以在这里得到一些帮助吗?谢谢!

编辑:已提出的建议与我的具体问题不符。在该线程中,类Scanner不用于将整数分成数字。我指定我想使用Scanner类,因为那里使用的许多不同方法仍然超出了我的水平。无论如何,在那个帖子中有很多有趣的想法,我希望我以后可以使用,所以无论如何,谢谢。

3 个答案:

答案 0 :(得分:1)

您可以在扫描仪上使用分隔符。在这种情况下,您可以使用空字符串作为分隔符。

String input = "8919";
Scanner s = new Scanner(input).useDelimiter("");
a = s.nextInt();
b = s.nextInt();
c = s.nextInt();
d = s.nextInt();
s.close(); 

答案 1 :(得分:0)

您应该将整数作为整数读取并将其存储在变量中。存储后,您可以将其拆分。其他方式是将其存储为字符串然后拆分字符串。你应该选择什么取决于你之后想要做什么

答案 2 :(得分:0)

试试这个:

import java.util.Scanner;

public class ScannerToTest {

    public static void main(String[] args) {

        int a,b,c,d;

        System.out.print("Please enter a 4 digit number : ");
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();

        String numberToString = String.valueOf(number);

        if(numberToString.length() == 4) {
            String numberArray [] = numberToString.split("");
            a = Integer.parseInt(numberArray[1]);
            b = Integer.parseInt(numberArray[2]);
            c = Integer.parseInt(numberArray[3]);
            d = Integer.parseInt(numberArray[4]);
            System.out.println("Value of a is : " + a);
            System.out.println("Value of b is : " + b);
            System.out.println("Value of c is : " + c);
            System.out.println("Value of d is : " + d);
        }else {
            System.out.println("Numbers beyond 4 digits are disallowed!");
        }

    }

}