我有这个程序,它从输入文件中读取数字,然后要求用户输入数字。然后,程序读取文件中的所有数字,如果输入的数字在文件中,则程序将打印回“ Number is in file”;如果输入的数字不在文件中,则程序将打印回,“ Number is not file”在文件中。”如果用户输入'q',我还需要它能够退出程序,但是我不确定该怎么做,因为'q'char,并且程序正在寻找输入int。我确实创建了一个变量char quit = 'q',但是即使这是正确的开始方式,也不确定在哪里使用它。

package classwork7_2;
import java.util.*;
import java.io.*;

public class ClassWork7_2 {

public static void main(String[] args)throws IOException {

    Scanner s = new Scanner(System.in);

    int[] numbers = fileToArray();
    Arrays.sort(numbers);
    char quit = 'q';


    while (true) {
    System.out.print("Enter a number in the file: ");
    int numb = s.nextInt();
    int i = Arrays.binarySearch(numbers, numb);
    if (i < 0) {
        System.out.print("Number is not in file\n");
    } else {
        System.out.print("Number is in file\n");

    }
}


}

public static int[] fileToArray() throws IOException{

    Scanner s = new Scanner(System.in);
    int[] array = new int[7];

    System.out.print("Enter name of file: ");
    String filename = s.nextLine();

    File f = new File(filename);
    Scanner inputFile = new Scanner(f);
    int i = 0;

    while(inputFile.hasNext()){

       array[i] = inputFile.nextInt();
       i++;
    }
        inputFile.close();
        return array;
}
}

最佳答案

您可以如下更改while循环:

在这里,不是读取nextInt,而是读取string,如果不是int,则转换为q

while (true) {

        System.out.print("Enter a number in the file: ");
        String ln = s.nextLine();
        if("q".equals(ln)) {
            break;//exiting as user entered "q"
        }
        int numb  = Integer.parseInt(ln);
        int i = Arrays.binarySearch(numbers, numb);
        if (i < 0) {
            System.out.print("Number is not in file\n");
        } else {
            System.out.print("Number is in file\n");

        }

    }

09-10 03:35
查看更多