为什么我会收到一封信。预计要上课吗?试图在java中调用方法
我对编程很陌生,请随意在回复中措辞严厉。什么都行。 基本上,我试图调用一个方法LineCount(),但当我试图编译时,命令提示符会抱怨。在字符串[A](我相信是第8行)处需要上课
*谢谢你们的帮助!我的代码现在可以用了!我真的很感谢大家的意见
import java.util.Scanner;
import java.io.*;
public class FileCount{
public static void main(String[] args) throws IOException{
String[] in = new Scanner(new File(args[0]));
System.out.println(lineCount(String[] in);
}
public static void lineCount(String[] A){
// check number of command line arguments
if(args.length != 1){
System.err.println("Usage: LineCount file");
System.exit(1);
}
// count lines, words, and chars in file
int lineCount = 0;
while( in.hasNextLine() ){
in.nextLine();
lineCount++;
}
in.close();
System.out.println( args[0]+" contains "+lineCount+" lines" );
}
}
# 1 楼答案
你的第一个问题
String[] in = new Scanner(new File(args[0]));
创建一个扫描对象并将其分配到一个数组,它不是这样工作的。更改代码以读取文件并将其存储在类似arraylist的文件中如果你想的话,你可以把列表转换成字符串数组,这样就不需要了
然后调用lineCount()方法,对文件中的行进行计数
# 2 楼答案
->除了其他答案之外,代码中还有很多错误,因为您要将
lineCount(in)
作为参数传递给linecount()
方法,然后现在通过A
变量而不是in
引用lineCount(String[] A)
中的参数->您也不能在
linecount()
方法中引用args
,因为它是main()
方法的一个参数,因此在其范围内仅限于它->你不能这样做
String[] in = new Scanner(new File(args[0]));
,你正在给一个字符串数组分配一个Scanner
实例,你必须这样做->您正在
linecount()
方法内调用System.out.println()
,尽管您的方法linecount()
的返回类型为void,但不要将您的方法放在print()
函数内,因为不管怎样,它里面有print()
语句->最后,可能还有更多,因为
in
变量的类型是Scanner
,请将方法声明更改为现在把它叫做
lineCount(in)
来自main()
编辑:-由于您是初学者,我将为您的问题提供工作代码:-
# 3 楼答案
首先
假设你在这里提出问题时犯了错误,改变一下
到