我对此非常陌生,我一直坚持解决与数组有关的问题,我需要帮助。 所以我应该编写的程序是用户首先输入一个数字(int)。然后用户可以输入任何数字(int),每次用户输入数字时,它会按排序顺序打印出这些数字的数组。当用户在字符串中输入“end”时,程序结束并显示它所排序数字的数组。 事情是我不知道当我声明扫描程序将采用int时用户如何输入字符串。当我输入一个字符串时,它显示一个错误。 我是初学者所以请不要使用任何复杂的东西,如“异常”和类似的东西。我只学习了循环,然后才开始学习数组。谢谢。
get '/uploads/:basename.:extenstion', to: 'controller#action', basename: /.*(?=\.[\w\d]+$)/
答案 0 :(得分:3)
然后为什么要将输入读作int
?而不是你,我会将数据读取为String并在需要时将其转换为int
:
String input = scan.nextLine();
现在我可以验证
如果两个条件相遇,我继续阅读输入。否则,如果两个条件不符合,那么它不是数字类型,而不是“结束”字符串,我所做的取决于我的程序的逻辑。最后一种情况是“结束”字符串,我从循环中退出。
答案 1 :(得分:0)
以字符串形式读取输入 检查它的“结束”字符串 否则尝试将字符串解析为整数值
像这样修改你的循环代码
while ( a.length < 5 ) {
System.out.print("Type: ");
String input = scan.nextLine();
int number;
if(input.equals("end"))
break;
else {
try {
number = Integer.parseInt(input);
int[] b = Arrays.copyOf(a, a.length + 1);
b[b.length-1] = number;
a = b;
System.out.println(Arrays.toString(a));
} catch (Exception e) {
System.out.println("invalid argument");
break;
}
答案 2 :(得分:0)
这将为你做到!
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Help {
public static void main(String[] args) {
ArrayList<Integer> userArray = new ArrayList<>();
System.out.println("Enter some numbers!");
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
while (!input.equalsIgnoreCase("END")) {
int element = Integer.valueOf(input);
userArray.add(element);
for (Integer integer : userArray) {
System.out.println(integer);
}
input = scanner.nextLine();
}
Collections.sort(userArray);
for (Integer integer : userArray) {
System.out.println(integer);
}
}
}
答案 3 :(得分:0)
此外,您可以让用户开始说明将会有多少个号码。然后,它要求那么多数字。第一个数字,即大小,将定义数组的大小。