gpt4 book ai didi

java - 将单词对象添加到 ArrayList 中

转载 作者:行者123 更新时间:2023-12-01 11:02:54 26 4
gpt4 key购买 nike

import java.util.Scanner;
import java.util.ArrayList;
import java.io.File;

class Ordliste {

ArrayList<String> list = new ArrayList<String>();

public void lesBok(String filnavn) throws Exception {
File fil = new File(filnavn);
Scanner s = new Scanner(fil);

while(s.hasNextLine()){
leggTilOrd(s.nextLine());
}
}

private void leggTilOrd(String ord){

Ord w = new Ord(ord);
if (list.contains(w)) {
w.oekAntall();
}
else {
list.add(w);
}
}

}

class Ord {

private String tekst;
private int verdi = hentAntall();

public Ord(String tekst){
this.tekst = tekst;
this.verdi = verdi;
} //Konstruktoer

public String toString(){
return tekst;
}

public int hentAntall(){
return verdi;
}

public void oekAntall(){
verdi++;
}
}

我基本上想做的是从 txt.file 中读取单词。该代码应该只保存每个单词一次,并在每次重复时将“verdi”加1。

我做错了什么? “ordliste”和“ord”是两个不同的java文件。我希望你能理解我一直在努力做的事情,即使它是挪威语的。

最佳答案

方法leggTilOrd中的代码“list.contains(w)”不合适;

您不是对重复单词收费,而是对重复 Ord 对象收费。

因此,如果你想对重复单词进行计数,你的 Ord 对象应该覆盖 equals 方法:

class Ord{

@Override
public boolean equals(Object obj) {
Ord o = (Ord)obj;
return tekst.equals(o.tekst);
}

private String tekst;
private int verdi = hentAntall();

public Ord(String tekst) {
this.tekst = tekst;
this.verdi = verdi;
} // Konstruktoer

public String toString() {
return tekst;
}

public int hentAntall() {
return verdi;
}

public void oekAntall() {
verdi++;
}
}

关于java - 将单词对象添加到 ArrayList 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33205049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com