本人菜鸟,要写一个java程序,在程序中插入两个个txt文本,一个是字典,名为dic.txt,另一个叫word.txt,里面有10个英语单词,这10个单词一个一个比较,比如说第一个和第二个比较,第二个和第三个比较,第三个和第四个比较分别可以分析出“多了一个字母”,“少了一个字母”,”有一个字母不同“,”字母相同,但是顺序不同“。如果对比到一个单词是不存在在字典里的就停止比较。这个程序太复杂了,所以请各位高手帮忙!!!
感激啊~~~~~

解决方案 »

  1.   

    你的需求应该分成两个部分:
    1、检查word.txt单词是否全部出自于字典;
    2、分析word.txt每个单词与前一个单词的差异度。第一个需求难度不高,如果dic.txt的数量并不是海量的话,可以全部读入Collection中,那么后续的判断就很快很方便了;当然这个是空间代价较高的。第二个需求相对复杂些,需要专门做程序去进行比较,建议你分为三个步骤(或函数)进行实现,这样可以简化程序设计的复杂度,当然最后你也可以进行优化重组:
    1、检查字符数量差异,总数是多了还是少了,几个;这个很简单,length比较就完了。
    2、检查字符内容差异,也就是字母是否都有,还是缺某几个,多某几个;这个稍微复杂点点,需要将两个字符串全部打散为字符,然后做循环匹配:以前者匹配后者,就得到后者缺几个;以后者匹配前者,就得到后者多了几个。
    3、是否完全一致(这个可以不需要写了,直接用String.equals函数即可)。如果你追求算法思路,大致就是这个思路,如果你想求代码实现,那就要看看有没有好心人帮你写了。
      

  2.   

    因为我没有学过输入流,所以前面对于单词txt文件是否每个都在字典txt文件的判断不会写,求解答啊~~~~~
      

  3.   

    word.txt里的单词放入一个数组、ArrayList或什么东西,假设叫words;dic.txt里的单词放入一个数组、ArrayList或什么东西,假设叫dic。
    for(int i=0;i<word.Length;i++)
    {
        if(dic.contains(words[i])
        {
            //...
        }
        else
        {
            //...
        }
    }
    纯伪代码。。