所以我试图在另一个类的主类中创建一个对象,其中来自main的String输入应该用在一个方法中,该方法计算特定单词或String在文本文件中出现的次数。但是当我试图打印出计数器时,它只是出现在0.
这是主要课程:
Ord forsteOrd = new Ord("Being");
forsteOrd.hentAntall();
以下是我想要达到的方法的课程:
import java.util.Scanner;
import java.io.File;
public class Ord {
private String tekstord;
private int teller = 0;
public Ord(String tekst){
tekst = tekstord;}
public int hentAntall() throws Exception {
Scanner tekstfil = new Scanner(new File("scarlet.txt"));
while(tekstfil.hasNextLine()){
String ord = tekstfil.nextLine();
if(ord.equals(tekstord)){
teller++;
}
}
return teller;
答案 0 :(得分:1)
nextLine方法返回所有文件行。如果该行包含exacltly字符串“Being”,则计数器将增加,否则不会。 例如。像“Being”或“BeingBeing”这样的行不会增加反击。
答案 1 :(得分:0)
这就是原因......
private String tekstord; //by default it has "" in itself,i.e nothing;
public Ord(String tekst){
tekst = tekstord;}
因此,当您的构造函数运行时, tekst 会分配一个存储在 tekstord 中的值,即“”。当您运行<时strong> hentAntall ,
if(ord.equals(tekstord)){
teller++;
}
出纳员的值永远不会增加,因为 ord 中有一些字符串,而 tekstord 没有任何东西,因为它从未被分配任何东西,所以它们都不相等而且会永远不会平等,你的出纳员的价值永远不会增加。
Solution..?
而不是 tekst = tekstord ,交换变量 tekstord = tekst 。