Java 我能';我似乎不知道为什么我的代码在这里失败
我试图使用包含长串数字的文件,将它们作为参数输入。然后我试图找到两条弦之间的海明距离。现在我在第7、8、9和11行有错误。他们说“找不到symbol:methodlength()”。我对java非常陌生,所以我想知道我是否错误地使用了scanner,或者我把其他地方搞砸了,导致了这些错误。如有任何见解,将不胜感激 如果有帮助,我导入的文件的格式如下:Java 我能';我似乎不知道为什么我的代码在这里失败,java,Java,我试图使用包含长串数字的文件,将它们作为参数输入。然后我试图找到两条弦之间的海明距离。现在我在第7、8、9和11行有错误。他们说“找不到symbol:methodlength()”。我对java非常陌生,所以我想知道我是否错误地使用了scanner,或者我把其他地方搞砸了,导致了这些错误。如有任何见解,将不胜感激 如果有帮助,我导入的文件的格式如下: 13413.123, 12314.434, 12353.809, 等等 public static double calcDifferen
13413.123,
12314.434,
12353.809,
等等
public static double calcDifference(String[] args) throws IOException {
Scanner scanner =
new Scanner(new File(args[0]));
Scanner scanner2 =
new Scanner(new File(args[1]));
double a = 0;
for (double x = 0; x < scanner.length(); x++) {
for (double y = 0; y < scanner2.length(); y++) {
if (scanner.charAt(x) == scanner2.charAt(y)) {
a += 0;
} else if (scanner.charAt(x) != scanner2.charAt(y)) {
a += 1;
}
}
}
return a;
}
公共静态双calcDifference(字符串[]args)引发IOException{
扫描仪=
新扫描仪(新文件(args[0]);
扫描仪2=
新扫描仪(新文件(args[1]);
双a=0;
用于(双x=0;x
扫描仪
没有length()
(或chartAt()
,正如Daemon指出的那样)
如果要读取整个文件,不使用任何外部库(例如Apache)的最短方法是:
此外,好的做法是在完成后关闭文件
Scanner scanner = new Scanner(new File(args[0]));
String text = scanner.useDelimiter("$").next();
scanner.close();
进一步澄清:
现在,您可以在
text
上使用length()
和charAt()
。$是表示输入结束的正则表达式符号。因此,当调用next()
时,扫描仪仅在输入结束时停止。这不是读取整个文件的唯一方法,但它是最短的。您看过Scanner
的文档了吗?在非方法Scanner类中检查数据计算长度:您可以发布编译器错误和哪一行出现问题。建议在使用hasNextLine()进行循环时使用
作为测试和nextLine()
以实际获取下一行作为字符串。然后在这些字符串上应用差异循环。我建议将x
和y
类型设置为int
,而不是double
。您将它们用作整数,而double在charAt
中不起作用。因此,如果我理解正确,我将考虑使用text.length()?那么“$”到底是什么?如果这是一个愚蠢的问题,对不起。我扩展了我的答案。
Scanner scanner = new Scanner(new File(args[0]));
String text = scanner.useDelimiter("$").next();
scanner.close();