使用java.io的java中的字典

时间:2014-11-18 14:14:29

标签: java dictionary java-io

我在java中编写了字典代码,其中我从名为newFile.txt的文件中读取数据。文件世界放在一行,其含义放在nextline上。用户进入一个世界。如果在文件中找到word,则在下一行显示其含义,如果未找到word,则显示相似的单词(子串)。

  

"在搜索单词时,它不应该搜索含义。"

import java.io.*;
import java.util.*;
public class Notepad {
    public static void main(String []args) throws IOException{
        BufferedReader in = null;
        Scanner input = new Scanner(System.in);
        String str;
        boolean notfound = false;
        char again = 'a';

        try{
            do{
                notfound = false;
                System.out.println("Enter word :");
                str = input.next();
                File f = new File("D:\\newFile.txt");
                in = new BufferedReader(new FileReader(f));
                String s;

                while((s = in.readLine()) != null){

                    int x = s.indexOf(str);

                    if(x != -1){
                        int lens = s.length();
                        String sub = s.substring(x);
                        int lensub = str.length();
                        if(lens == lensub){
                            System.out.println((in.readLine()));
                            break;
                        }
                        else{
                            System.out.println(sub) ;
                            notfound = true;
                        }
                    }
                    s = in.readLine();
                }
                if(!notfound){
                    System.out.println("Try another world?(y/n):");
                    again = input.next().trim().charAt(0);
                    again = Character.toLowerCase(again);
                }
            }
            while(notfound || again == 'y');
            System.out.println("terminated!");
        }
        finally{
            if(in != null){
                in.close();
            }

        }
    }
}

当我输入单词的子字符串时,它也会搜索含义,然后如果输入正确的单词则不显示含义

1 个答案:

答案 0 :(得分:1)

//此代码正在读取如下文件:

Hello - to greet
Circle - a round shape

//那么代码就可以这样完成,这样可以吗?

  public static void main(String []args) throws IOException{
        BufferedReader in = null;
        Scanner input = new Scanner(System.in);
        String str;
        boolean notfound = false;
        char again = 'a';

        try{
            do{
                notfound = false;
                System.out.println("Enter word :");
                str = input.next();
                File f = new File("/Folder/demo1.txt");
                in = new BufferedReader(new FileReader(f));
                String s;

                while((s = in.readLine()) != null){

                    int x = s.indexOf(str);
                 //   System.out.println("Index of dash:" + s.indexOf("-"));
                 //   System.out.println("Index of Hello:" + x);

                    if(x != -1 && x<s.indexOf("-")){

                        String sub = s.substring(0,s.indexOf("-"));
                        System.out.println("Sub:" + sub);
                        System.out.println("Str:" + str);
                        if(sub.trim().equals(str.trim())){
                              System.out.println("Success:" +sub);
                               notfound = true;
                               break;


                        }

                        else{
                            System.out.println("Word is not present") ;
                            notfound = false;
                            break;
                        }
                    }



                }
                if(!notfound){
                    System.out.println("Try another word?(y/n):");
                    again = input.next().trim().charAt(0);
                    again = Character.toLowerCase(again);
                }
            }
            while(notfound || again == 'y');
            System.out.println("terminated!");
        }
        finally{
            if(in != null){
                in.close();
            }

        }
    }
}