2014-11-18 2 views
-1

Я написал код словаря в java, в котором я читал данные из файла с именем newFile.txt. В мире файлов помещается на одну строку, и его значение помещается на следующую строку. Пользователь вводит мир. Если слово найдено в файле, оно показывает его значение, размещенное на следующей строке, и если слово не найдено, оно показывает похожие слова (подстроки).словарь в java с помощью java.io

«При поиске слова оно не должно искать смысла».

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(); 
      } 

     } 
    } 
} 

когда я входит подстроку слова он ищет смысл, а затем, если ввести нужное слово он не показывает смысл

+2

я не словарь, чтобы найти смысл вашего вопроса –

+0

я думаю, вопрос в том, как отфильтровать значения из поиска слова. Если это так, основываясь на вашем текущем решении, вы можете сохранить счетчик номеров строк. – Magnilex

+0

, когда я вхожу в подстроку слова, он также ищет значение, а затем, если ввести правильное слово, оно не показывает значение. – Ayesha

ответ

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(); 
      } 

     } 
    } 
} 
+0

Я думаю, что это не проблема. Чтобы пропустить строку, я дважды использовал readline() – Ayesha

+0

@Ayesha Я снова отредактировал свой ответ – Rika

+0

у вас есть этот код. Он всегда возвращает -1 – Ayesha

Смежные вопросы