首页 > 解决方案 > 从 BufferReader 获取输入

问题描述

我想从控制台扫描以下输入,但在BufferedReader输入 3 行后不扫描。请帮助....以下是我的代码

public static void main(String args[]) throws IOException
 {
    root = new trienode();

    System.out.println("enter inputs");
    BufferedReader s = new BufferedReader (new InputStreamReader(System.in));
    String[] s1 = s.readLine().split(" ");
    int  n = Integer.parseInt(s1[0]);
    int  l = Integer.parseInt(s1[1]);

    for(int i=0;i<n;i++)
    {

        String[] s2 = s.readLine().split(" ");
        String key=s2[0];
        int w=Integer.parseInt(s2[1]);
        //Insert(key , w);
    }

    for(int j=0;j<l;j++)
    {
        String s3 = s.readLine();
        if(search(s3)!=-1)
        System.out.println(search(s3));
    }

}

我的输入是

2 1

abc 10

gef 9

ghi

无法扫描ghi......请帮忙

标签: javainputjava.util.scannerbufferedreader

解决方案


更改" ""\\s+"拆分功能。

public static void main(String args[]) throws IOException {
    root = new trienode();

    System.out.println("enter inputs");
    BufferedReader s = new BufferedReader (new InputStreamReader(System.in));
    String[] s1 = s.readLine().split("\\s+");
    int  n = Integer.parseInt(s1[0]);
    int  l = Integer.parseInt(s1[1]);

    for(int i=0;i<n;i++)
    {

        String[] s2 = s.readLine().split("\\s+");
        String key=s2[0];
        int w=Integer.parseInt(s2[1]);
        //Insert(key , w);
    }

    for(int j=0;j<l;j++)
    {
        String s3 = s.readLine();
        if(search(s3)!=-1)
        System.out.println(search(s3));
    }

}

推荐阅读