Java 如何使用无效表达式输出名称和行号?

Java 如何使用无效表达式输出名称和行号?,java,file,Java,File,我需要检查文件中的一些字符行,并显示格式错误的文件和行 Uncorrect expressions: note1.txt line 2 note2.txt line 5 我的错误代码: public static void main(String[] args) throws IOException { for (int i = 0; i < args.length; i++) { File input = new File(args[i]); // co

我需要检查文件中的一些字符行,并显示格式错误的文件和行

Uncorrect expressions:
 note1.txt line 2
 note2.txt line 5
我的错误代码:

 public static void main(String[] args) throws IOException {

    for (int i = 0; i < args.length; i++) {
        File input = new File(args[i]); // convert args to files

        String resultStrings = ConvertToString(input);  // converted to String lines

        for (int k = 0; k < resultStrings.length(); k++) {
            boolean isValid = CheckValid(resultStrings); //true - if necessary char compared, false if not

            if (isValid) {
                System.out.println("");
            } else {
                System.err.println("Uncorrect expressions:" + "\n");
                System.out.println(%wrongfilename% + "line" + %wrongline%);
            }
        }

    }
}
如何获取和输出错误的文件名和错误的行号


谢谢

您可以这样做-像k+1这样的整数表达式会自动转换为字符串。请注意,k+1将符合用户的期望,因为人类从1开始计数,而不是从0开始计数

System.out.println("Incorrect expressions:\n");
System.out.println(" " + args[i] + " line " + (k + 1));

我假设您只想在顶部打印一次不正确的表达式,而不是每次找到不正确的行。此外,这将在文件名和行号之间放置制表符,尽管您可以根据需要简单地将\t替换为。

Hi@Jashaszun,您不能像这样使用字符串而不是字符串数组的索引resultStrings[k]@Mishel-Oh-oops,我想用的是C,而不是java。已编辑。@Mishel错误消息是什么,如果有,它在哪里?我想知道我的代码出了什么问题,这样我就可以帮你修复它。@Mishel哦,哇,我真傻。。。我认为ResultString是字符串[],而不是字符串。让我来修正我的答案,对不起。@Mishel还有,你的代码甚至我的代码现在都不能很好地工作,因为你的CheckValid函数将整个文件作为一个参数,而不是一次一行。现在,它检查整个文件n次,其中n是文件中的字符数,然后简单地打印出错误消息n次或0次。
System.err.println("Incorrect expressions:");    
for (int i = 0; i < args.length; i++) {
    String resultStrings = ConvertToString(new File(args[i]));
    for (int k = 0; k < resultStrings.length(); k++)
        if (!CheckValid(resultStrings))
            System.out.println(args[i] + "\tline " + (k+1));
}