我正在尝试从文件中的每一行打印第4和第5个字符。
这是关于在线测试的问题。这是我无法及时弄清楚的那个。我只是出于学习目的而这样做。
无论如何,我正在尝试遍历这些行并打印这些字符。显然我做错了什么!
该文件包含:
1001XXXXYYYYZZZZ
2002AAAABBBBCCCC
3003LLLLMMMMNNNN
4004SSSSTTTTUUUU
输出应该是:
1X
2A
3L
4S
这是我的代码
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.FileNotFoundException;
public class Quiz9 {
public static void main (String [] args) throws FileNotFoundException{
Scanner in = new Scanner("/Users/abc/input.txt");
PrintWriter out = new PrintWriter("/Users/abc/output.txt");
String a;
while (in.hasNextLine()) {
for(int i=0;i<4;i++) {
a = in.next();
char b = a.charAt(5);
char c = a.charAt(6);
out.println(b +""+ c +"hello");
}
}
in.close();
out.close();
}
}
我已经得到它来产生一些输出,但它只是说“\ s”甚至没有在列表中!我不知道我哪里出错了。
答案 0 :(得分:3)
您正在扫描文件名,而不是文件内容。使用例如扫描仪(新文件(...))代替。
答案 1 :(得分:1)
您需要使用Scanner(File source)而不是文件名。
您收到\s
,因为文件名的第5个和第6个字符是s
和\
。
试试这个......
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Quiz9 {
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new File("/Users/abc/input.txt"));
PrintWriter out = new PrintWriter("/Users/abc/output.txt");
String a;
while (in.hasNextLine()) {
a = in.nextLine();
char b = a.charAt(3);
char c = a.charAt(4);
out.write(b + "" + c + "\n");
}
in.close();
out.close();
}
}