Java 扫描仪输入阵列
我是个新手,我一直在解决一个与数组有关的问题,我需要帮助。 所以我应该写的程序是,首先用户输入一个数字(int)。然后用户可以输入任意数字(int),每次用户输入一个数字时,它都会按排序顺序打印出这些数字的数组。当用户以字符串形式输入“end”时,程序结束并显示排序后的数字数组。 问题是,我不知道当我声明扫描器将接受int时,用户如何输入字符串。当我输入字符串时,它显示一个错误。 我是一个初学者,所以请不要使用像“异常”之类的复杂的东西。我只学过循环,刚开始学习数组。多谢各位Java 扫描仪输入阵列,java,arrays,input,Java,Arrays,Input,我是个新手,我一直在解决一个与数组有关的问题,我需要帮助。 所以我应该写的程序是,首先用户输入一个数字(int)。然后用户可以输入任意数字(int),每次用户输入一个数字时,它都会按排序顺序打印出这些数字的数组。当用户以字符串形式输入“end”时,程序结束并显示排序后的数字数组。 问题是,我不知道当我声明扫描器将接受int时,用户如何输入字符串。当我输入字符串时,它显示一个错误。 我是一个初学者,所以请不要使用像“异常”之类的复杂的东西。我只学过循环,刚开始学习数组。多谢各位 import ja
import java.util.*;
import java.util.Scanner;
public class Homework3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Type :");
int numbers = scan.nextInt();
int [] a = {numbers};
System.out.println(Arrays.toString(a));
while ( a.length < 5 ) {
System.out.print("Type: ");
int number = scan.nextInt();
int[] b = Arrays.copyOf(a, a.length + 1);
b[b.length-1] = number;
a = b;
System.out.println(Arrays.toString(a));
}
Arrays.sort(a);
System.out.println(Arrays.toString(a));
}
}
import java.util.*;
导入java.util.Scanner;
公开课家庭作业3{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
系统输出打印(“类型:”);
int numbers=scan.nextInt();
int[]a={numbers};
System.out.println(Arrays.toString(a));
而(a.长度<5){
系统输出打印(“类型:”);
int number=scan.nextInt();
int[]b=Arrays.copyOf(a,a.length+1);
b[b.length-1]=数字;
a=b;
System.out.println(Arrays.toString(a));
}
数组。排序(a);
System.out.println(Arrays.toString(a));
}
}
那么为什么将输入读取为int
?我将以字符串形式读取数据,并在需要时将其转换为int
:
String input = scan.nextLine();
现在我可以验证这一点了
- 这不是“结束”字符串
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;
}
while(a.长度<5){
系统输出打印(“类型:”);
字符串输入=scan.nextLine();
整数;
if(输入等于(“结束”))
打破
否则{
试一试{
number=Integer.parseInt(输入);
int[]b=Arrays.copyOf(a,a.length+1);
b[b.length-1]=数字;
a=b;
System.out.println(Arrays.toString(a));
}捕获(例外e){
System.out.println(“无效参数”);
打破
}
这会帮你的
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);
}
}
}
import java.util.ArrayList;
导入java.util.Collections;
导入java.util.Scanner;
公共课帮助{
公共静态void main(字符串[]args){
ArrayList userArray=新的ArrayList();
System.out.println(“输入一些数字!”);
扫描仪=新的扫描仪(System.in);
字符串输入=scanner.nextLine();
而(!input.equalsIgnoreCase(“END”)){
int元素=整数.valueOf(输入);
添加(元素);
for(整数:userArray){
System.out.println(整数);
}
输入=scanner.nextLine();
}
Collections.sort(userArray);
for(整数:userArray){
System.out.println(整数);
}
}
}
此外,您可以让用户从说出将有多少个数字开始。然后,它要求有多少个数字。第一个数字,即大小,将定义数组的大小。将数据作为循环中的字符串读取。如果输入的字符串是
“end”
(使用equalsIgnoreCase()
),然后break.Else使用\\d+
进行匹配,然后将其转换为一个数字(Integer.parseInt()
)第一个用户输入对应的是什么?用户将要输入的数字的数量,对吗?scanner类有很多很好的方法:if(scan.hasNext(“end”){…}