Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扫描仪输入阵列_Java_Arrays_Input - Fatal编程技术网

Java 扫描仪输入阵列

Java 扫描仪输入阵列,java,arrays,input,Java,Arrays,Input,我是个新手,我一直在解决一个与数组有关的问题,我需要帮助。 所以我应该写的程序是,首先用户输入一个数字(int)。然后用户可以输入任意数字(int),每次用户输入一个数字时,它都会按排序顺序打印出这些数字的数组。当用户以字符串形式输入“end”时,程序结束并显示排序后的数字数组。 问题是,我不知道当我声明扫描器将接受int时,用户如何输入字符串。当我输入字符串时,它显示一个错误。 我是一个初学者,所以请不要使用像“异常”之类的复杂的东西。我只学过循环,刚开始学习数组。多谢各位 import ja

我是个新手,我一直在解决一个与数组有关的问题,我需要帮助。 所以我应该写的程序是,首先用户输入一个数字(int)。然后用户可以输入任意数字(int),每次用户输入一个数字时,它都会按排序顺序打印出这些数字的数组。当用户以字符串形式输入“end”时,程序结束并显示排序后的数字数组。 问题是,我不知道当我声明扫描器将接受int时,用户如何输入字符串。当我输入字符串时,它显示一个错误。 我是一个初学者,所以请不要使用像“异常”之类的复杂的东西。我只学过循环,刚开始学习数组。多谢各位

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();
现在我可以验证这一点了

  • 这不是“结束”字符串
如果这两个条件满足,我将继续读取输入。否则,如果这两个条件不满足,那么它不是数字类型,也不是“end”字符串,我所做的取决于程序的逻辑。最后一种情况是“end”字符串,我从循环中退出。

将输入作为字符串读取 检查其是否为“结束”字符串 否则,请尝试将字符串解析为整数值

像这样修改循环代码

  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”){…}