Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何打印由制表符行分隔的文件中的第一个单词?_Java_Flatfilereader - Fatal编程技术网

Java 如何打印由制表符行分隔的文件中的第一个单词?

Java 如何打印由制表符行分隔的文件中的第一个单词?,java,flatfilereader,Java,Flatfilereader,我试图读取一个文件,只打印每行的第一个数字。我曾尝试使用split,但它从未返回正确的结果,它只是在下表中打印整个内容。任何帮助都将不胜感激 输出 公共类词{ public static void main(String[] args) { // Create file File file = new File("/Users/lobsang/documents/s

我试图读取一个文件,只打印每行的第一个数字。我曾尝试使用split,但它从未返回正确的结果,它只是在下表中打印整个内容。任何帮助都将不胜感激

输出

公共类词{

            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位数?我在下面添加了一个答案。T
split
方法中的Regex在技术上是正确的,但在java中需要避开反斜杠。因此固定行是:
System.out.println(s.split(\\s”)[0])
谢谢它确实起作用了..你能再看一次我的输出吗..做了一些更改..对于所有数字小于3的数字,它的输出都是空的。可能是因为初始空格而不是数字..我如何更新我的表达式以便它显示所有数字,包括1和2位数字?我在下面添加了一个答案如果你可以的话,你可以看看我的这一期吗
System.out.println(s.trim().split("\\s")[0]);