Java 有没有办法传递16位整数?如果是的话,怎么做?
我需要让用户输入一个16位数字(没有后缀或引号),然后将该数字传递给一个对象。每当我试图输入这样一个数字时,它被认为是“数据类型int超出范围”。我不希望用户必须以XXXXXXXXXXXXXX L的形式输入它,因为用户可能不知道java需要一个L来表示Java 有没有办法传递16位整数?如果是的话,怎么做?,java,object,types,constructor,largenumber,Java,Object,Types,Constructor,Largenumber,我需要让用户输入一个16位数字(没有后缀或引号),然后将该数字传递给一个对象。每当我试图输入这样一个数字时,它被认为是“数据类型int超出范围”。我不希望用户必须以XXXXXXXXXXXXXX L的形式输入它,因为用户可能不知道java需要一个L来表示longs。我也不想在数字周围加引号。在java抛出关于数据类型不匹配或超出范围异常的异常之前,有没有一种方法可以转换这种情况 这能做到吗?我试图构造一个Customer对象,它是Order对象中的一个字段,它本身位于ArrayList order
long
s。我也不想在数字周围加引号。在java抛出关于数据类型不匹配或超出范围异常的异常之前,有没有一种方法可以转换这种情况
这能做到吗?我试图构造一个Customer
对象,它是Order
对象中的一个字段,它本身位于ArrayList orderList
中<代码>“Sam Totman”及其旁边的数字是我正在使用的参数示例
orderList.get(1).setBuyer(new Customer("Sam Totman", 2112112121121121));
我在这个构造函数中放置数据类型的地方应该放什么ccn
是信用卡号
public class Customer
{
private String name;
private *datatype* ccn;
Customer(String name, *datatype* ccn)
{
this.name = name;
this.ccn = ccn;
}
使用扫描仪处理输入
Scanner scan = new Scanner(System.in);
long aLong = scan.nextLong(10);
....
orderList.get(1).setBuyer(new Customer("Sam Totman", aLong));
顾客
public class Customer
{
private String name;
private long ccn;
Customer(String name, long ccn)
{
this.name = name;
this.ccn = ccn;
}
}
您将数字文字(编码到程序中)与内部表示混淆。假设输入是扫描仪(System.in)。如何做到这一点?BigInteger数据类型有效吗?如何将
字符串
传递到长
?或者如何从扫描仪中获取long
,所以把它作为任何一种整数都没有意义。请把它当作一个字符串来读。请你详细说明一下你的代码,并解释一下它是如何解决这个问题的。这将在将来帮助他人
orderList.get(1).setBuyer(new Customer("Sam Totman", new Scanner(System.in).nextLong());