Java 使用bufferedReader获取一个.txt文件,将其添加到arraylist,并从中搜索一个单词

Java 使用bufferedReader获取一个.txt文件,将其添加到arraylist,并从中搜索一个单词,java,arraylist,bufferedreader,Java,Arraylist,Bufferedreader,我有一个dictionaryTXT.txt文件,它存储单词及其含义,如“苹果:水果”、“猫:动物”、“蝙蝠:乐器”等。现在我想从用户那里获取输入并搜索含义。 我无法进行搜索。有人能帮忙吗 public static void main (String[] args) throws IOException { List<String> lines = new ArrayList<String>(); System.out.println("enter t

我有一个dictionaryTXT.txt文件,它存储单词及其含义,如“苹果:水果”、“猫:动物”、“蝙蝠:乐器”等。现在我想从用户那里获取输入并搜索含义。 我无法进行搜索。有人能帮忙吗

public static void main (String[] args) throws IOException
  {
    List<String> lines = new ArrayList<String>();
    System.out.println("enter the word you want to search-");
          Scanner in= new Scanner(System.in);
    String input=in.nextLine();
    FileReader fileReader = new FileReader("dictionaryTXT.txt");
    BufferedReader bufferedReader = new BufferedReader(fileReader);
    String line = null;
    while ((line = bufferedReader.readLine()) != null) {
        lines.add(line);
    }
        String [] words = lines.toArray(new String[lines.size()]);
        StringBuffer result = new StringBuffer();
        for (int j  = 0; j < words.length; j++)
       {
        result.append(words[j]);
       }
        String my = result.toString();
        int i = my.indexOf(":");
        String sub=my.substring(0,i);

        if(sub.equals(input))
        {

            System.out.println(my);

        }
        else
        {
            System.out.println("word not found");
        }
        bufferedReader.close();
       }

    }
publicstaticvoidmain(字符串[]args)引发IOException
{
列表行=新的ArrayList();
System.out.println(“输入要搜索的单词-”;
扫描仪输入=新扫描仪(系统输入);
字符串输入=in.nextLine();
FileReader FileReader=newFileReader(“dictionaryTXT.txt”);
BufferedReader BufferedReader=新的BufferedReader(文件阅读器);
字符串行=null;
而((line=bufferedReader.readLine())!=null){
行。添加(行);
}
String[]words=lines.toArray(新字符串[lines.size()]);
StringBuffer结果=新的StringBuffer();
for(int j=0;j
使用
地图
。并使用
文件。readAllLines()


当然,如果你的字典特别大,你会想用
Files.newbufferedeader()
来代替,并逐行阅读

而且,上面的代码缺少基本的错误检查;练习留给读者

使用
地图
。并使用
文件。readAllLines()


当然,如果你的字典特别大,你会想用
Files.newbufferedeader()
来代替,并逐行阅读

而且,上面的代码缺少基本的错误检查;练习留给读者

使用
地图
。并使用
文件。readAllLines()


当然,如果你的字典特别大,你会想用
Files.newbufferedeader()
来代替,并逐行阅读

而且,上面的代码缺少基本的错误检查;练习留给读者

使用
地图
。并使用
文件。readAllLines()


当然,如果你的字典特别大,你会想用
Files.newbufferedeader()
来代替,并逐行阅读


而且,上面的代码缺少基本的错误检查;请留给读者

> P>请考虑使用地图,而不是专门为查找和检索目的而设计的。p>
Map<String, String> dictionary = new HashMap<String, String>();
while ((line = bufferedReader.readLine()) != null) {
    String[] lineArray = line.split(":");
    dictionary.put(lineArray[0].trim(), lineArray[1].trim());
}

Scanner in= new Scanner(System.in);
String input=in.nextLine();

if (dictionary.get(input) != null) {
  System.out.println(dictionary.get(input));
}
else {
  System.out.println("No definition found");
}
Map dictionary=newhashmap();
而((line=bufferedReader.readLine())!=null){
字符串[]lineArray=line.split(“:”);
dictionary.put(lineArray[0].trim(),lineArray[1].trim());
}
扫描仪输入=新扫描仪(系统输入);
字符串输入=in.nextLine();
if(dictionary.get(input)!=null){
System.out.println(dictionary.get(input));
}
否则{
System.out.println(“未找到定义”);
}

这是<代码>查找与<代码>查找< /C> >相比,它快得多,效率高。

< P>请考虑使用一个映射,而不是专门为查找和检索而设计的。p>
Map<String, String> dictionary = new HashMap<String, String>();
while ((line = bufferedReader.readLine()) != null) {
    String[] lineArray = line.split(":");
    dictionary.put(lineArray[0].trim(), lineArray[1].trim());
}

Scanner in= new Scanner(System.in);
String input=in.nextLine();

if (dictionary.get(input) != null) {
  System.out.println(dictionary.get(input));
}
else {
  System.out.println("No definition found");
}
Map dictionary=newhashmap();
而((line=bufferedReader.readLine())!=null){
字符串[]lineArray=line.split(“:”);
dictionary.put(lineArray[0].trim(),lineArray[1].trim());
}
扫描仪输入=新扫描仪(系统输入);
字符串输入=in.nextLine();
if(dictionary.get(input)!=null){
System.out.println(dictionary.get(input));
}
否则{
System.out.println(“未找到定义”);
}

这是<代码>查找与<代码>查找< /C> >相比,它快得多,效率高。

< P>请考虑使用一个映射,而不是专门为查找和检索而设计的。p>
Map<String, String> dictionary = new HashMap<String, String>();
while ((line = bufferedReader.readLine()) != null) {
    String[] lineArray = line.split(":");
    dictionary.put(lineArray[0].trim(), lineArray[1].trim());
}

Scanner in= new Scanner(System.in);
String input=in.nextLine();

if (dictionary.get(input) != null) {
  System.out.println(dictionary.get(input));
}
else {
  System.out.println("No definition found");
}
Map dictionary=newhashmap();
而((line=bufferedReader.readLine())!=null){
字符串[]lineArray=line.split(“:”);
dictionary.put(lineArray[0].trim(),lineArray[1].trim());
}
扫描仪输入=新扫描仪(系统输入);
字符串输入=in.nextLine();
if(dictionary.get(input)!=null){
System.out.println(dictionary.get(input));
}
否则{
System.out.println(“未找到定义”);
}

这是<代码>查找与<代码>查找< /C> >相比,它快得多,效率高。

< P>请考虑使用一个映射,而不是专门为查找和检索而设计的。p>
Map<String, String> dictionary = new HashMap<String, String>();
while ((line = bufferedReader.readLine()) != null) {
    String[] lineArray = line.split(":");
    dictionary.put(lineArray[0].trim(), lineArray[1].trim());
}

Scanner in= new Scanner(System.in);
String input=in.nextLine();

if (dictionary.get(input) != null) {
  System.out.println(dictionary.get(input));
}
else {
  System.out.println("No definition found");
}
Map dictionary=newhashmap();
而((line=bufferedReader.readLine())!=null){
字符串[]lineArray=line.split(“:”);
dictionary.put(lineArray[0].trim(),lineArray[1].trim());
}
扫描仪输入=新扫描仪(系统输入);
字符串输入=in.nextLine();
if(dictionary.get(input)!=null){
System.out.println(dictionary.get(input));
}
否则{
System.out.println(“未找到定义”);
}


这是
lookup
search
相比,后者速度更快、效率更高。

您有任何例外吗?如果是,请在此处发布异常消息。这个问题最好使用
HashMap
解决,因为@BrianVanover表示,映射是解决问题的方法。@BrianVanover我正要这么说!没有,没有例外。我猜是一些逻辑问题。你有例外吗?如果是,请在此处发布异常消息。这个问题最好使用
HashMap
解决,因为@BrianVanover表示,映射是解决问题的方法。@BrianVanover我正要这么说!没有,没有例外。我猜是一些逻辑问题。你有例外吗?如果是,请在此处发布异常消息。这个问题最好使用
HashMap
解决,因为@BrianVanover表示,映射是解决问题的方法。@BrianVanover我正要这么说!没有,没有例外。我想是一些逻辑问题。你有什么例外吗