簡體   English   中英

如何檢查文件中是否包含用戶輸入的特定數字? (Java)的

[英]How can I check if a file contains a certain number that the user has input? (java)

嗨,我正在嘗試編寫一個程序,該程序將檢查指定文件中用戶輸入的數字,但是如果文件中不存在該數字,我希望程序循環回到開頭,我該怎么做?

這是我到目前為止所做的一團糟:

import java.util.Scanner;

public class Classtest2 {
    public static void main(String[] args) {

    //    //1. class
    Scanner sc = new Scanner(Classtest2.class.getResourceAsStream("trombones.txt"));
    Scanner myScanner = new Scanner(System.in);

    System.out.println("What number would you like to check for?");
    String number = myScanner.nextLine() ;
    String keyWord = number, word;
    int lineNum = 0;

    while(sc.hasNextLine()) {
        word = sc.next();

        if(word.equals(myScanner.nextLine().trim())) {
            System.out.println("The number "+number+ " is there");

            break;
        } else {
            // not found
        }
    } // main
} // class

您需要做的就是從用戶那里獲取輸入,然后檢查文件中是否存在。您不應該在while循環內使用myScanner.nextLine().trim() ,因為這樣一來,它等待每個循環時間獲取用戶輸入。從用戶那里獲取一個數字,您應該在文件中檢查它。您所做的是獲取用戶輸入,然后再次等待用戶一次又一次地輸入值

固定碼

   import java.util.Scanner;

    public class Classtest2 {
        public static void main(String[] args) {

        //    //1. class
        Scanner sc = new Scanner(Classtest2.class.getResourceAsStream("trombones.txt"));
        Scanner myScanner = new Scanner(System.in);

        System.out.println("What number would you like to check for?");
        String number = myScanner.nextLine() ;
        int lineNum = 0;

        while(sc.hasNextLine()) {
            word = sc.next();

            if(word.equals(number.trim())) { //here was the problem
                System.out.println("The number "+number+ " is there");

                return;
            } else {

            }
        } 
        System.out.println("not found");  // not found
    } 

最好的方法

import java.util.Scanner;

public class Classtest2 {

    public static void main(String[] args) {

        Scanner myScanner = new Scanner(System.in);
        System.out.println("What number would you like to check for?");
        String number = myScanner.nextLine();
        if(isFound(number)){
            System.out.println("The number "+number+ " is there");
        }else{
            System.out.println("The number "+number+ " doesn't exist");
        }
    }

    public static boolean isFound(String number) {

        Scanner sc = new Scanner(Classtest2.class.getResourceAsStream("trombones.txt"));
        String word="";
        while (sc.hasNextLine()) {
            word = sc.next();

            if (word.equals(number.trim())) { 
                return true;
            }
        }
        return false;
    }
}

這對我有用,希望對您有用:

package test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;

public class Classtest2 {

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

        File f = new File("trombones.txt");
        f.createNewFile();
        Scanner myScanner = new Scanner(System.in);
        boolean numExiste = menu(new Scanner(f), myScanner);
        while (!(numExiste)){
            numExiste = menu(new Scanner(f), myScanner);
        }
        myScanner.close();

    }

    private static boolean menu(Scanner fileScanner, Scanner myScanner) throws FileNotFoundException{
        String word = "";
        System.out.println("What number would you like to check for?");
        String number = myScanner.nextLine().trim();

        while(fileScanner.hasNextLine()){
            word = fileScanner.nextLine();
            if(word.trim().equals(number)){
                System.out.println("The number "+number+ " is there");
                return true;
            }else{
                //Not the number
            }
        }
        System.out.println("The number "+ number+ " is not in the file\n\n");
        return false;

    }
} // main } // class

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM