Java 如何打印由制表符行分隔的文件中的第一个单词?
我试图读取一个文件,只打印每行的第一个数字。我曾尝试使用split,但它从未返回正确的结果,它只是在下表中打印整个内容。任何帮助都将不胜感激 输出 公共类词{Java 如何打印由制表符行分隔的文件中的第一个单词?,java,flatfilereader,Java,Flatfilereader,我试图读取一个文件,只打印每行的第一个数字。我曾尝试使用split,但它从未返回正确的结果,它只是在下表中打印整个内容。任何帮助都将不胜感激 输出 公共类词{ public static void main(String[] args) { // Create file File file = new File("/Users/lobsang/documents/s
public static void main(String[] args) {
// Create file
File file = new File("/Users/lobsang/documents/start.txt");
try {
// Create a buffered reader
// to read each line from a file.
BufferedReader in = new BufferedReader(new FileReader(file));
String s;
// Read each line from the file and echo it to the screen.
s = in.readLine();
while (s != null) {
System.out.println(s.split("\s")[0]);
s = in.readLine();
}
// Close the buffered reader
in.close();
} catch (FileNotFoundException e1) {
// If this file does not exist
System.err.println("File not found: " + file);
} catch (IOException e2) {
// Catch any other IO exceptions.
e2.printStackTrace();
}
}
}
要读取反斜杠,需要将反斜杠加倍,因此请执行以下操作:
System.out.println(s.split(“\\s”)[0]);
而不是:
System.out.println(s.split(“\s”)[0]);
要读取反斜杠,需要将反斜杠加倍,因此请执行以下操作:
System.out.println(s.split(“\\s”)[0]);
而不是:
System.out.println(s.split(“\s”)[0]);
要匹配正则表达式中具有特殊含义的字符,需要使用带反斜杠(\)的转义序列前缀。空格的转义序列是
\s
,因此需要将“\s”
替换为“\\s”
要匹配正则表达式中具有特殊含义的字符,您需要使用带反斜杠(\)的转义序列前缀。空格的转义序列是\s
,因此您需要将“\s”
替换为“\\s”
,正如我在注释中已经回答的那样,您需要在java中转义反斜杠。
此外,您可以在拆分字符串之前trim()
字符串,这将删除前导空格和尾随空格。这意味着,它还可以处理两位数或一位数。因此,您应该使用:
System.out.println(s.trim().split("\\s")[0]);
正如我在评论中已经回答的那样,您需要在java中避开反斜杠。 此外,您可以在拆分字符串之前
trim()
字符串,这将删除前导空格和尾随空格。这意味着,它还可以处理两位数或一位数。因此,您应该使用:
System.out.println(s.trim().split("\\s")[0]);
split
方法中的正则表达式在技术上是正确的,但您需要在java中转义反斜杠。因此固定行是:System.out.println(s.split(\\s”)[0])
谢谢它确实起作用了..你能再次看一下我的输出吗..做了一些更改..它的输出对于所有位数小于3的数字都是空的。可能是因为初始空格而不是数字..我如何更新我的表达式以便它显示所有数字,包括1和2位数?我在下面添加了一个答案。Tsplit
方法中的Regex在技术上是正确的,但在java中需要避开反斜杠。因此固定行是:System.out.println(s.split(\\s”)[0])
谢谢它确实起作用了..你能再看一次我的输出吗..做了一些更改..对于所有数字小于3的数字,它的输出都是空的。可能是因为初始空格而不是数字..我如何更新我的表达式以便它显示所有数字,包括1和2位数字?我在下面添加了一个答案如果你可以的话,你可以看看我的这一期吗
System.out.println(s.trim().split("\\s")[0]);