01/10/2018, 17:43

Làm ứng dụng từ điển bằng java

giờ em có data như vậy: https://www.dropbox.com/sh/6zhsstduyf2fubw/AACCTHQb7qWt2mxmoPrq81xFa?dl=0

giờ mình nên dùng cái cài gì để đọc dữ liệu. Mình đang học java basic.

Trương Tấn Phát viết 19:45 ngày 01/10/2018

Đọc từ định dạng zip luôn à?
Đọc nội dung từ zip: https://stackoverflow.com/questions/15667125/read-content-from-files-which-are-inside-zip-file
Đọc nội dung dạng văn bản thô:

  • Hỗ trợ đọc văn bản
    …: https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html
  • …Theo các dạng mã hóa kí tự: https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html
    Phổ biến là UTF-8 thôi.

Đọc được các chuỗi trong các tập tin thì cắt, chia, tách chúng để được nội dung phù hợp thôi.

Trâu Gia Gia viết 19:53 ngày 01/10/2018

không ạ, mình đọc từ file txt sau khi giải nén file zip

Nguyễn Đình Anh viết 19:54 ngày 01/10/2018

Bạn dùng mã HTML à ?? Thế này thì hơi khó đó nha. Tốt nhất thì bỏ hết mã HTML đi.

Trâu Gia Gia viết 19:55 ngày 01/10/2018

Cai data nay thầy cho bạn ạ Có giải pháp đơn giản nào không bạn, mình còn 3 tuần mà chưa làm được cái gì

Trương Tấn Phát viết 19:46 ngày 01/10/2018

À html để hiển thị các định dạng (màu, danh sách) dễ dàng.
Vậy thì cần thành phần hỗ trợ hiển thị html trong java.
https://docs.oracle.com/javase/7/docs/api/javax/swing/JEditorPane.html

Phần đọc thì đọc trực tiếp thì dễ hơn từ zip.

Nguyễn Đình Anh viết 19:47 ngày 01/10/2018

Ok., theo như mình đọc được. Mỗi 1 line trong file sẽ là 1 từ, ví dụ như có 1 dòng như thế này:

-tron<html><i>-tron</i><br/><ul><li><font color='#cc0000'><b> hậu tố tạo danh từ có nghĩa</b></font></li></ul><ul><li><font color='#cc0000'><b> ống chân không</b></font></li></ul><ul><li><font color='#cc0000'><b> magnetron</b></font></li></ul><ul><li><font color='#cc0000'><b> manhêtron</b></font></li></ul><ul><li><font color='#cc0000'><b> biện pháp xử lý các hạt trong nguyên tử</b></font></li></ul><ul><li><font color='#cc0000'><b> cyclotron</b></font></li></ul><ul><li><font color='#cc0000'><b> xiclotron</b></font></li></ul></html>

Nếu như chúng ta phân tích rõ đoạn đó ra thì sẽ được một đoạn HTML thế này:

-tron
<html>
   <i>-tron</i><br/>
   <ul>
      <li><font color='#cc0000'><b> hậu tố tạo danh từ có nghĩa</b></font></li>
   </ul>
   <ul>
      <li><font color='#cc0000'><b> ống chân không</b></font></li>
   </ul>
   <ul>
      <li><font color='#cc0000'><b> magnetron</b></font></li>
   </ul>
   <ul>
      <li><font color='#cc0000'><b> manhêtron</b></font></li>
   </ul>
   <ul>
      <li><font color='#cc0000'><b> biện pháp xử lý các hạt trong nguyên tử</b></font></li>
   </ul>
   <ul>
      <li><font color='#cc0000'><b> cyclotron</b></font></li>
   </ul>
   <ul>
      <li><font color='#cc0000'><b> xiclotron</b></font></li>
   </ul>
</html>

Bạn có thể thấy mấy điều như sau:

  • Thẻ <i> sẽ chứa từ cần dịch ở bên trong.
  • Mỗi thẻ <li> sẽ chứa các nghĩa của từ đó.

Vậy thì bây giờ cách đơn giản để đọc Data là đọc vào 1 HashMap<String, ArrayList<String>> để có thể lấy từ nhanh nhất có thể.
B1: Đọc ra từng dòng một.
B2: Sau đó bạn có thể dùng .indexOf("<i>").indexOf("</i>") để lấy vị trí của từ cần dịch. Để nó là key trong HashMap.
B3: Tiếp tục dùng .indexOf("<li>").indexOf("</li>") để đọc hết các nghĩa của từ đó. Có thể dùng thuật toán trong tìm kiếm từ để làm điều đó. Sau đó thì cứ nhét vào 1 cái ArrayList rồi để nó làm vaule trong HashMap.


Cứ làm như vậy đến hết file .txt đó là được.
Trâu Gia Gia viết 19:47 ngày 01/10/2018

nghĩa là mình dùng đọc file chứ không dùng sql hả

Nguyễn Đình Anh viết 19:58 ngày 01/10/2018

Thực ra bạn có thể dùng cách của mình để phân tích Data vào SQL. Vậy thì lúc đọc dữ liệu và ứng dụng sẽ dễ hươn

Nguyễn Văn Đình viết 19:51 ngày 01/10/2018

Bạn đọc đc chưa? Giúp mình với

Bài liên quan
0