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