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

问题描述:

我刚开始学习Java(两个月并计数),而且我仍然有很多问题需要学习。现在我想用Scanner类将整数“分”为其数字。我会用一个例子更好地解释自己:在Java中使用Scanner类来获取整数的特定数字

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

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

编辑:已提出的建议不符合我的具体问题。在该线程中,类Scanner不用于将整数分隔为数字。我指定我想使用Scanner类,因为使用的许多不同的方法仍然超出我的水平。无论如何,这个线程中有很多有趣的想法,我希望以后能够使用,所以非常感谢。

+0

如果你想给定数量的每个数字分配给每个不同的字母,你需要你的'long'输入转换为'String'。 –

+1

扫描为字符串,然后遍历字符串中的字符数,然后使用'Integer.parseInt'投射'charAt'的结果。 –

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

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

这绝对是我的一天!这很简单,正是我所需要的。谢谢! – Armitage

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

试试这个:

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!"); 
     } 

    } 

}