开发者

Txtfile search not working

开发者 https://www.devze.com 2023-03-08 11:41 出处:网络
Ok so i have inputted a number of records to a text file and i can both write to and read from this file, but i am now attempting to search through this textfile and have encountered a problem.

Ok so i have inputted a number of records to a text file and i can both write to and read from this file, but i am now attempting to search through this textfile and have encountered a problem.

package assignmentnew;

// Import io so we can use file objects
import java.io.*;
import java.util.Scanner;

public class SearchProp {
    public void Search() throws FileNotFoundException {
        try {
            String details, input, id, line;
            int count;
            Scanner user = new Scanner(System.in);
            System.out.println();
            System.out.println();
            System.out.println("Please enter your housenumber: ");
            input = user.next();
            Scanner housenumber = new Scanner(new File("writeto.txt"));
            while (housenumber.hasNext())
            {
                id = housenumber.next();
                line = housenumber.nextLine();
                if (input.equals(id))
                {
                    System.out.println("House number is: "  + id + "and" + line);
                    break;
                }
                if(!housenumber.hasNext()) {
                   开发者_运维知识库 System.out.println("no house with this number");
                }
            }
        }
        catch(IOException e)
        {
            System.out.print("File failure");
        }
    }
}

No matter what value i enter i am told that the house number is not present in the file, but obviously it is, any ideas?

Addendum:

File Structure in textfile.

27,Abbey View,Hexham,NE46 1EQ,4,150000,Terraced
34,Peth Head,Hexham,NE46 1DB,3,146000,Semi Detached
10,Downing Street,London,sw19,9,1000000,Terraced


The default delimiter for a scanner is white-space, and not ,.


You have to use housenumber.useDelimiter(","); and the code will work.

EDIT: Set it before the while. And that is what I get for example for 27.

Please enter your housenumber: 
27
House number is: 27 and ,Abbey View,Hexham,NE46 1EQ,4,150000,Terraced
0

精彩评论

暂无评论...
验证码 换一张
取 消