我有这个程序,它从输入文件中读取数字,然后要求用户输入数字。然后,程序读取文件中的所有数字,如果输入的数字在文件中,则程序将打印回“ 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");
}
}