求助,裸身跪求了!!!找各个单词所在的行

hujian8241_1 2009-10-21 08:48:56
一个作业:从一篇文章中取单词,并按字母顺序进行了排列(已经实现)
现在根据这组单词,分别列出他们所在的行 ,比如 like {1,6,26}
不是这一个单词,是这一组已经排序的单词都要找出来,这个如何去实现呢?

我这个方法已经可以实现找一个单词,但是无法按排序的单词组,按从小到大的顺序进行找。

我贴了方法,帮我看看吧,裸身跪求了!!!

public String[] lecteur (String file) {
List<String> liste1 = new Vector<String>();
List<String> liste2 = new Vector<String>();
String chbuf;

String table[]=new String[3000];
//for( motListe1=0;motListe1<liste1.size();motListe1++)
try {

File f1 = new File(file);
Scanner sc1 = new Scanner(f1,"ISO-8859-1");
while (sc1.hasNext()) {
chbuf = nettoyage(sc1.next()) ;
if (!chbuf.equals("")){
ajouter_elt(chbuf, liste1);
}
Collections.sort(liste1); //par ordre
}
for(int i=0;i<liste1.size();i++) //create la table
{table[i]=liste1.get(i); //retire le mot dans la liste
//System.out.println(i+": "+table[i]);
}

// *****************************************************************
File f2 = new File(file);
Scanner sc2 = new Scanner(f2,"ISO-8859-1");

while (sc2.hasNextLine()) {
numbreLine++;
chbuf = nettoyage(sc2.nextLine()) ;
if (!chbuf.equals("")){
ajouter_elt(chbuf, liste2);
}
String[] word = chbuf.split(" ");
Pattern p1=Pattern.compile("[a-zA-Zé\\à\\ê\\è]{4,20}");


for(int j=0;j<word.length;j++){
Matcher matcher1=p1.matcher(word[j]);
while(matcher1.find())
m.put((String)matcher1.group(),0);
}

Set<String> set = m.keySet();


for(int i=0;i<word.length;i++)

{
Matcher matcher1=p1.matcher(word[i]);

Iterator<String> it = set.iterator();
while(matcher1.find()){
String wordNew=matcher1.group();

while(it.hasNext()){
String k = nettoyage(it.next());

if(wordNew.equals(k)){

int c = m.get(k);
c++;
m.put(nettoyage(wordNew),c);
}
//******************************************************************************

if(liste1.get(l).equals(wordNew)){
int c = 0;
c++;
m2.put(numbreLine,c);
}
}
}
}

m.clear();
}

for(int line=0;line<liste1.size();line++)
System.out.println(liste1.get(line)+":"+m2);

} catch (FileNotFoundException ex) {
Logger.getLogger(Question3_Refaire_4.class.getName()).log(Level.SEVERE, null, ex);
}
Collections.sort(liste2);
return liste2.toArray(new String[0]);
}


下面还有自己写的方法,这只是部分,谢谢了!!!
...全文
154 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿士匹灵 2009-10-22
  • 打赏
  • 举报
回复


呵呵
owen_008 2009-10-22
  • 打赏
  • 举报
回复
顶一个~~呵呵
老张-AI 2009-10-22
  • 打赏
  • 举报
回复
mark
学习了
lgm277531070 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hujian8241_1 的回复:]
                if(liste1.get(l).equals(wordNew)){
                    int c = 0;
                    c++;
                    m2.put(numbreLine,c);
                }
比较就是这一段,liste1是已经排序的单词组,wordNew我是按行找的单词
用liste1的单词,按行进行和wordNew比较,然后如果有相同就输出行到m2(hashMap)中
这是这个程序的用意,但我只能找一个单词比如liste1.get(1),我现在要把1变为动态的变量
变成liste1.size(),可以这样一来,程序永远只能找第一个liste1.get(0),始终无法自增大
题目应该说清楚了,大家帮我看看,问题出在哪里,裸身跪谢
[/Quote]
你说你每次都找到的是liste1.get(0) 那既然这样 你找到这个后再把这个值删了 根据list长度动态的 那么下次使用get(0)其实就是之前的get(1)了
还有 我也很纳闷 既然可以找到list(0) 怎么可能找不到后面的呢 纳闷....
hujian8241_1 2009-10-21
  • 打赏
  • 举报
回复
谢谢大家,我试一下,给大家分,太感谢了
swandragon 2009-10-21
  • 打赏
  • 举报
回复
if(liste1.get(l).equals(wordNew)){
int c = 0;
c++;
m2.put(numbreLine,c);
}

map.put(wordNew,map.get(wordNew)+" "+numberLine);
swandragon 2009-10-21
  • 打赏
  • 举报
回复
我这个方法已经可以实现找一个单词,但是无法按排序的单词组,按从小到大的顺序进行找。

既然已经可以找一个单词了,为什么不能找单词组呢?

循环单词组,找每一个单词不可以吗?
快乐的2 2009-10-21
  • 打赏
  • 举报
回复
yongMap,KEY=单词,VALUE=List<Integer>这样存就可以了.
hujian8241_1 2009-10-21
  • 打赏
  • 举报
回复
if(liste1.get(l).equals(wordNew)){
int c = 0;
c++;
m2.put(numbreLine,c);
}
比较就是这一段,liste1是已经排序的单词组,wordNew我是按行找的单词
用liste1的单词,按行进行和wordNew比较,然后如果有相同就输出行到m2(hashMap)中
这是这个程序的用意,但我只能找一个单词比如liste1.get(1),我现在要把1变为动态的变量
变成liste1.size(),可以这样一来,程序永远只能找第一个liste1.get(0),始终无法自增大
题目应该说清楚了,大家帮我看看,问题出在哪里,裸身跪谢

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧