我该如何让用户输入一个int值并将它们拆分为单个数字并放入数组?

所以我想给用户输入一个int值。我该如何让用户输入一个int值并将它们拆分为单个数字并放入数组?

System.out.println ("How many number does your Student number has?"); 

tn = sc.nextInt();

int [] number = new int[tn];

System.out.println ("What is your Student number?");

for (int i = 0; i < tn; i++)

{

number[i] = sc.nextInt();

}

所以当你们看到的,第一的println后,如果我们输入2,将打印第二的println的两倍,但我希望它是只打印一次,但用户只能放置2数字。

因此,例如,如果总氮2,学号只能放置10 - 99

回答:

从comment to question:

有人问我拿出所有的数字

假设数234567的偶数位置是数字35的偶数位置,7,你可以通过转换为字符串并提取这些字符很容易:

private static int[] getEveryOtherDigit(int n) { 

String s = Integer.toString(n);

int[] result = new int[s.length()/2];

for (int i = 1, j = 0; i < s.length(); i += 2, j++)

result[j] = s.charAt(i) - '0';

return result;

}

测试

System.out.println(Arrays.toString(getEveryOtherDigit(7))); 

System.out.println(Arrays.toString(getEveryOtherDigit(67)));

System.out.println(Arrays.toString(getEveryOtherDigit(567)));

System.out.println(Arrays.toString(getEveryOtherDigit(4567)));

System.out.println(Arrays.toString(getEveryOtherDigit(34567)));

System.out.println(Arrays.toString(getEveryOtherDigit(234567)));

输出

[] 

[7]

[6]

[5, 7]

[4, 6]

[3, 5, 7]

回答:

除非我失去了一些东西你的第二个打印才会被调用一次。请注意,您将需要添加一些输入验证,因为0是一个有效的int,因此在当前状态下,您的代码不会将用户限制为10-99。

一个更好的方法是让他们输入整个数字,然后将其拆分成代码(例如将其作为字符串分割并使用Integer.valueOf())。

回答:

最方便的方式来实现,这将是刚刚获得输入作为串并拆分它,然后将它们转换为int

这里是代码

System.out.println ("What is your Student number?"); 

String stuNum = scn.nextLine();

int [] number = new int[ stuNum.length() ];

for (int i = 0; i < stuNum.length(); i++) {

number[i] = Character.getNumericValue(stuNum.charAt(i));

}

System.out.println (number);

以上是 我该如何让用户输入一个int值并将它们拆分为单个数字并放入数组? 的全部内容, 来源链接: utcz.com/qa/259462.html

回到顶部