在Java中使用Scanner类来获取整数的特定数字
问题描述:
我刚开始学习Java(两个月并计数),而且我仍然有很多问题需要学习。现在我想用Scanner
类将整数“分”为其数字。我会用一个例子更好地解释自己:在Java中使用Scanner类来获取整数的特定数字
我要求用户键入一个四位整数,比如说8919
。我想要做的是使用Scanner
类来划分该整数,并将其每个数字分配给一个变量;即a = 8
,b = 9
,c = 1
和d = 9
。
我肯定知道它可以完成,并且Scanner
类是要走的路。我只是不知道如何正确使用它。有需要的菜鸟可以在这里得到一些帮助吗?谢谢!
编辑:已提出的建议不符合我的具体问题。在该线程中,类Scanner
不用于将整数分隔为数字。我指定我想使用Scanner
类,因为使用的许多不同的方法仍然超出我的水平。无论如何,这个线程中有很多有趣的想法,我希望以后能够使用,所以非常感谢。
答
你可以在扫描仪上使用分隔符。对于这种情况,您可以使用空字符串作为分隔符。
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!");
}
}
}
如果你想给定数量的每个数字分配给每个不同的字母,你需要你的'long'输入转换为'String'。 –
扫描为字符串,然后遍历字符串中的字符数,然后使用'Integer.parseInt'投射'charAt'的结果。 –