掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1079|回复: 0

[求助] 词汇比较 去重复 或者词汇 筛选工具

[复制链接]

该用户从未签到

发表于 2017-3-13 19:32:32 | 显示全部楼层 |阅读模式
A B 两个txt文档,里面都是单词,一个一行。对于A里面的单词 如果 在B里面有,则保留如果在B里面没有 则将其删除删除,并最好将删除的单词输出到另外一个txt C文件当中 。。求java处理方法。我有eclipse 。最好是支持直接文件读取的 new FileReader("F:/A.txt") 这样的 谢谢各位 我刚学到继承。这个还做不了 谢谢 求代码怎么写
. A7 O/ z2 I% @# K6 S+ Z8 }
7 e: s; J; v8 T2 V/ ?2 J+ h2 E8 D
这是我之前的提问) ~0 U5 K" c" e- Y5 G" i; E
https://www.pdawiki.com/forum/thread-20151-1-1.html
5 U! M( c0 _1 G/ y) j3 H
1 ^/ m  P. ~* y! a7 G- H+ }! ^* I( K2 W) M3 u

+ s6 x! B5 s% q代码有了
: \3 H, N" F; l/ a* O使用方法  在f盘中放入相应的A和B即可5 r1 M+ F; A: W0 g- x0 a7 ?

7 w! E# |% E$ }5 `2 @* _import java.io.BufferedReader;
. V, D- Z! ]3 a1 Z9 [2 ^2 _$ nimport java.io.BufferedWriter;
+ z- o. P5 S4 D" W% e! fimport java.io.File;
1 i) M# O+ e/ z% X3 D* iimport java.io.FileReader;# |& V8 g5 i- G* k8 D3 m
import java.io.FileWriter;4 Z5 m! r& |( S% J0 W( n2 q2 K0 E
import java.io.IOException;: f$ {, i- r5 R$ q4 t& j
import java.util.ArrayList;
! r, g5 s9 o: W" Y- O! m% bimport java.util.List;
$ V" ^% w- y/ m  ~: |public class Test {3 u8 y2 [, @; k! W
  
' r/ t. b5 v1 k" B! g. J' O public static void main(String[] args) throws Exception {
+ Q: l4 \/ u9 O7 c3 U7 |   
- z: h' v+ E: t3 M1 b. I1 q  List<String> wordA = getWords("F:/A.txt");
! H& m& G" ^8 ~8 c( d1 g" h8 ~  List<String> wordB = getWords("F:/B.txt");
6 Z8 y$ n) G5 |% Y  x( R+ t  W8 ^  // A单词中B里面有的集合
/ K# U2 U" L( Y! s! b  List<String> wordC = new ArrayList<String>();
1 t4 R% \/ A$ u+ @: @  // A单词中B里面没有的集合, m5 |) E! |& W3 H$ ?7 m, n
  List<String> wordD = new ArrayList<String>();" q1 o5 j5 U$ N; i- N) R4 t
   + k2 L7 U' C% T  K, N# T
  for (String words : wordA) {5 F# m+ j) n& O+ Q# U0 M
   if (wordB.contains(words)) {( L7 t0 B; f0 H+ j/ o/ E$ e3 v0 Y
    wordC.add(words);" l3 S5 i5 j1 H* u5 y5 d
   } else {. ^! D: X: ~) z1 v
    wordD.add(words);; m" g- I1 J4 M8 J- H) v$ h
   }# B: ^3 r. ]0 J  m7 M  c9 j/ z
  }
/ t/ G( R: j6 N# N2 N   
# _3 t0 H4 h/ [: I' w$ {3 E  // 如果wordD为空,说明A的单词B里面都有" Z: H9 t% D1 _
  if (wordD.isEmpty()) {
8 M: O& C% y( C1 ]" c3 P3 i   return;! t  f5 G$ q8 Q6 _+ \4 A8 m
  }
5 s* z! b: |0 u) ^- [  E   9 |7 N) t) d1 [7 X
  File a = new File("F:/A.txt");$ ]2 E3 q) [8 O
  File c = new File("F:/C.txt");
/ J1 k! t6 l! T5 n  c.createNewFile();
1 y) v% I9 @! [' x0 M8 J8 u   
2 d; L/ H4 Y! W5 Q7 N8 H  // 向A文件中写入B中存在的单词
0 B# R" g8 A* w; n) |- c4 B8 B  BufferedWriter bw = new BufferedWriter(new FileWriter(a));1 V/ @1 d5 q4 I9 ~9 V
  for (String w : wordC) {
% }0 b/ ?  U1 O9 q   bw.write(w + "\r\n");
& u& e( n  ]1 z  t) s* m2 l/ B  }! Q6 ^- C. U7 }& Q
  bw.flush();' l$ T0 ]0 c0 p2 ?# f
  bw.close();
. a, y  @! y' l0 u8 d   6 r* T6 {! n4 I( V% ?
  // 向C文件中写入B中不存在的单词
: Q& {+ ?  a  Z8 A6 _  bw = new BufferedWriter(new FileWriter(c));# \( Z+ A0 Z- @" \) d
  for (String w : wordD) {
+ j/ O' B# H5 ~2 F, S+ T/ G+ [   bw.write(w + "\r\n");& d$ }/ V  n- Z: c9 n
  }
5 G% U8 R: @+ |7 L: h  S  bw.flush();) q1 I! v, y( p# i: e7 `
  bw.close();
% J' d7 K- b' }- C }
( v4 S/ g8 L& F0 K" z' X/ K  / P% c3 s2 _* n" J/ m8 V8 U7 N
/**
* J- B* i$ L: o' w  * 从文件中读取单词( a7 h9 g' U# h- V% d
  * @param filePath 文件完整路径# n9 g4 s! B! \& Q. [
  * @return
5 p( j9 `9 t# z9 C  * @throws IOException
! D9 ]1 L* y& o2 v2 C# {  P/ I" |  A) f  */
$ g+ I7 N8 s7 R) Z static List<String> getWords(String filePath) throws IOException {
9 N% }' z8 f/ f' N0 T+ T% {' `+ P4 N8 r  List<String> words = new ArrayList<String>();
4 ]4 E' K; q- v2 I  File file = new File(filePath);, M% r+ m! c, T9 R4 z
   4 n. i4 W, v6 v' j4 D6 e) \
  if (!file.exists() || file.isDirectory()) {
0 W9 b, Y3 l8 H/ G* d9 T   System.out.println("文件路径无效");
2 e$ t/ U1 z" |% o9 G   return words;" a5 Y% @8 }0 ]0 M: j
  }
, p% k1 V2 F* p3 J   ' N, b4 S- F2 j. @% B# V1 ~
  BufferedReader br = new BufferedReader(new FileReader(file));7 d3 q# d; W. R: \5 p( N* {
  String tmp = null;& d" x- Q2 s' i" m2 r
   
- e( Y/ Q# P6 M6 \  while ((tmp = br.readLine()) != null) {
/ {* h1 i" K0 x, p; b. x   words.add(tmp);
  U$ e* H! J6 ?, \  }, j- B% D0 S: l) g0 o! `
   ' `/ Y3 V# @7 R
  br.close();
' x0 }, {4 ?% d& t* }2 g  return words;6 E/ `6 `" w% ^# E, u
}0 G# ?# ?( t' S! Y; b! ?$ B; K
  
  {' |9 z, t5 e) z  d% h}
' ]+ i' `8 K3 W* J+ Y' N7 t( `( a7 B; \1 F% S. `3 J: ~3 w. c: A

- A: z, d3 B+ |7 u
: @, v0 ~0 U1 p, N# j
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

小黑屋|手机版|Archiver|PDAWIKI |网站地图

GMT+8, 2025-5-9 12:51 , Processed in 0.018842 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表