java - 如何输入字符作为输入以跳出寻找整数的循环?

标签 java arrays loops

我有这个程序,它从输入文件中读取数字,然后要求用户输入数字。然后程序读取文件中的所有数字,如果输入的数字在文件中,则程序打印回“数字在文件中”,如果输入的数字不在文件中,则程序打印回“数字不在文件中”。在文件中。”如果用户输入 '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 并在不是 q 时转换为 int

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");

        }

    }

关于java - 如何输入字符作为输入以跳出寻找整数的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53349036/

相关文章:

java - 成功执行测试后,Selenium 测试抛出错误

java - 在另一个 Activity 中使用从主 Activity 实例化的套接字

c - 将返回值分配给 int 数组

javascript - 如何将数组写入 Google 电子表格?

arrays - 下面的 Go 数组操作是做什么的?

python - 如何创建一个包含最后一个元素的子列表,但对所有其他相同大小的子列表使用通用公式?

java - Java 中的符号表

java - Java/Android 中的月份循环

java - JWS 是否在小程序的 JAR 中加载 JAR?

java - 使用按钮停止和开始循环