JAVA 截断扫描仪输入
JAVA truncate scanner input
我有一个程序要求用户输入一个整数(使用扫描仪)。
我只希望程序接受 7 位数字。
如果输入不是 7 位数字,我想将其 运行 转换为 7 位数字。
所以如果数字是 12345678,我希望它是 1234567。
目前我将输入存储在如下数组中:
for(int i = 0; i > 7; i++)
{
numbers[i] = input1 % 10;
input1 /= 10;
System.out.print(numbers[i]);
//stores the numbers backwards so if input was 123, first element would be 3, 2, 1
}
所以当我 运行 遇到问题时,如果我输入 12345678,它将存储为 8765432。我希望它存储为 7654321。
如果有人对我将号码存储为 1234567 或 7654321 的循环有任何建议,那将非常有帮助:)
好吧,有几件事。
首先,我认为您最好使用 ArrayList
并在 Integers
上工作,而不是像 int 这样的原始类型。如果您使用 ArrayList
,那么您只需执行 .add(Integer e)
即可将下一个 Integer
放入您的列表中。
接下来,您的循环应该是:
for(int i = 0; i < 7; i++)
而不是 for(int i = 0; i > 7; i++)
。看到不同?如果您使用的是 i++
,那么您使用 <
来限制循环,而不是 >
。
至于反转输入,很简单,用i--
代替,不过我想你可以自己想出来。
一种更简单的方法是将输入保存到字符串中
然后检查是否 length>7
,如果是,则保留第 7 个字符,如果不是,则什么都不做 ;)
String input1 = sc.nextLine();
if(input1.length>7){
input1 = input1.substring(0,7);
}
int input = Integer.valueOf(input1);
这显然比单独存储每个数字或遍历输入更容易 ;)
用“?”编辑 ('?' definition and explication)
String input1 = sc.nextLine();
int input = Integer.valueOf(((input1.length>7) ? input1.substring(0,7) : input1);
这允许不更改 input1
的值,这将保留原始输入
public static void trauncateNumber(int input1) {
String Str=Integer.toString(input1);
//int changeValue=0;
if(Str.length()>7){
//Str=Integer.toString(input1);
Str=Str.substring(0, 7);
input1=Integer.parseInt(Str);
}
//int changeValue=
System.out.println(input1);
}
我有一个程序要求用户输入一个整数(使用扫描仪)。 我只希望程序接受 7 位数字。 如果输入不是 7 位数字,我想将其 运行 转换为 7 位数字。
所以如果数字是 12345678,我希望它是 1234567。
目前我将输入存储在如下数组中:
for(int i = 0; i > 7; i++)
{
numbers[i] = input1 % 10;
input1 /= 10;
System.out.print(numbers[i]);
//stores the numbers backwards so if input was 123, first element would be 3, 2, 1
}
所以当我 运行 遇到问题时,如果我输入 12345678,它将存储为 8765432。我希望它存储为 7654321。
如果有人对我将号码存储为 1234567 或 7654321 的循环有任何建议,那将非常有帮助:)
好吧,有几件事。
首先,我认为您最好使用 ArrayList
并在 Integers
上工作,而不是像 int 这样的原始类型。如果您使用 ArrayList
,那么您只需执行 .add(Integer e)
即可将下一个 Integer
放入您的列表中。
接下来,您的循环应该是:
for(int i = 0; i < 7; i++)
而不是 for(int i = 0; i > 7; i++)
。看到不同?如果您使用的是 i++
,那么您使用 <
来限制循环,而不是 >
。
至于反转输入,很简单,用i--
代替,不过我想你可以自己想出来。
一种更简单的方法是将输入保存到字符串中
然后检查是否 length>7
,如果是,则保留第 7 个字符,如果不是,则什么都不做 ;)
String input1 = sc.nextLine();
if(input1.length>7){
input1 = input1.substring(0,7);
}
int input = Integer.valueOf(input1);
这显然比单独存储每个数字或遍历输入更容易 ;)
用“?”编辑 ('?' definition and explication)
String input1 = sc.nextLine();
int input = Integer.valueOf(((input1.length>7) ? input1.substring(0,7) : input1);
这允许不更改 input1
的值,这将保留原始输入
public static void trauncateNumber(int input1) {
String Str=Integer.toString(input1);
//int changeValue=0;
if(Str.length()>7){
//Str=Integer.toString(input1);
Str=Str.substring(0, 7);
input1=Integer.parseInt(Str);
}
//int changeValue=
System.out.println(input1);
}