也许你们中的一些人会告诉我错误在哪里,因为我坐在这里几个小时并没有看到任何东西。
程序应该检查是否可以在txt文件中找到if
并将其返回到底部。
关于user.home的第二个问题
当我使用它获取"C: \ Users \ Daniel / test / Test.java"
时程序不起作用当我设置"C :/ Users / Daniel / test / Test.java"
程序的路径开始找到我的.txt
文件时,但我不能保留它,因为它必须是由user.home
发现:(
public class Main {
public static void main(String ... args) throws Exception {
String usrHome = System.getProperty("user.home");
Finder finder = new Finder(usrHome + "/Testy/Test.java");
int nif = finder.getIfCount();
System.out.println("Number found 'if'": " + nif);
}
}
查找课程:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Finder {
String file;
Finder(String file){
file = this.file;
}
int getIfCount() throws FileNotFoundException{
int count = 0; String tmp; String lf = "if";
Scanner sc = new Scanner (new File("C:/Users/Daniel/Testy/Test.java"));
while(sc.hasNext()){
tmp = sc.next();
System.out.println(tmp); //to check if it works correctly
if(tmp == lf){
count++;
}
}
sc.close();
return count;
}
}
结果应如下所示:
号码找到“if”:3
因为有三个这样的元素,虽然结果总是0
答案 0 :(得分:1)
结果始终为0
由于==
与String
一起使用,因此在比较两个equals()
string
if (tmp.equals(lf)) {
count++;
}
答案 1 :(得分:0)
进行文件名连接的更好方法是:
File home = new File(System.getProperty("user.home"));
File file = new File(home, "Testy/Test.java");
/* Or even ...
File file = new File(new File(home, "Testy"), "Test.java");
*/
Finder finder = new Finder(file);
这避免了需要了解平台路径名表示。
错误计数问题是由Java 101的基本错误引起的。您正在使用'=='来比较字符串。它(通常)不起作用。使用String.equals(...)
。