Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我能';我似乎不知道为什么我的代码在这里失败_Java - Fatal编程技术网

Java 我能';我似乎不知道为什么我的代码在这里失败

Java 我能';我似乎不知道为什么我的代码在这里失败,java,Java,我试图使用包含长串数字的文件,将它们作为参数输入。然后我试图找到两条弦之间的海明距离。现在我在第7、8、9和11行有错误。他们说“找不到symbol:methodlength()”。我对java非常陌生,所以我想知道我是否错误地使用了scanner,或者我把其他地方搞砸了,导致了这些错误。如有任何见解,将不胜感激 如果有帮助,我导入的文件的格式如下: 13413.123, 12314.434, 12353.809, 等等 public static double calcDifferen

我试图使用包含长串数字的文件,将它们作为参数输入。然后我试图找到两条弦之间的海明距离。现在我在第7、8、9和11行有错误。他们说“找不到symbol:methodlength()”。我对java非常陌生,所以我想知道我是否错误地使用了scanner,或者我把其他地方搞砸了,导致了这些错误。如有任何见解,将不胜感激

如果有帮助,我导入的文件的格式如下:

 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();