Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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
从textfile java中删除单个和多个空格,但不应合并文本文件中的所有行_Java_File Io - Fatal编程技术网

从textfile java中删除单个和多个空格,但不应合并文本文件中的所有行

从textfile java中删除单个和多个空格,但不应合并文本文件中的所有行,java,file-io,Java,File Io,考虑到txt文件中有n行,将给出4行的eg 从文件输入: A、B、C、D、E F G H I J K 我不知道 Q R S T 预期输出文件: ABCDE FGHIJK LMNOP QRST 我设法产生的结果是: ABCDEFGHIJKLMNOPQRST 预期输出应如下所示显示,字与字之间或行与行之间没有任何空格。我想知道您是否在每行上迭代文本文件?还是整个街区? 如果要迭代每一行,那么很简单: 创建一个空文本变量 将读取的当前行指定给此变量,然后将空格移除函数或方法应用于此变量 现在将此变量表

考虑到txt文件中有n行,将给出4行的eg

从文件输入: A、B、C、D、E

F G H I J K

我不知道

Q R S T

预期输出文件: ABCDE

FGHIJK

LMNOP

QRST

我设法产生的结果是:

ABCDEFGHIJKLMNOPQRST


预期输出应如下所示显示,字与字之间或行与行之间没有任何空格。

我想知道您是否在每行上迭代文本文件?还是整个街区? 如果要迭代每一行,那么很简单:

  • 创建一个空文本变量

  • 将读取的当前行指定给此变量,然后将空格移除函数或方法应用于此变量

  • 现在将此变量表示为:

    变量+=“\r\n”

  • 这将为删除其空格的每一行添加一个“返回新行”

  • 就这些

  • 我想知道你是否在每一行迭代你的文本文件?还是整个街区? 如果要迭代每一行,那么很简单:

  • 创建一个空文本变量

  • 将读取的当前行指定给此变量,然后将空格移除函数或方法应用于此变量

  • 现在将此变量表示为:

    变量+=“\r\n”

  • 这将为删除其空格的每一行添加一个“返回新行”

  • 就这些
  • 请看一下方法和课堂。您可以使用以清除空格:

    System.out.println("A B C D E".replaceAll("\\s", ""));  // ABCDE
    
    在哪里

    \s是一个空白字符:[\t\n\x0B\f\r]

    您可以做的是使用上面的代码迭代每一行并删除空格。我希望这能有所帮助。

    请看一下方法和课堂。您可以使用以清除空格:

    System.out.println("A B C D E".replaceAll("\\s", ""));  // ABCDE
    
    在哪里

    \s是一个空白字符:[\t\n\x0B\f\r]


    您可以做的是使用上面的代码迭代每一行并删除空格。我希望这能有所帮助。

    首先,根据你的问题,如果你能逐行阅读,那将是最有益的。幸运的是,通过Java-8的Streams实现,您可以做到这一点

    该方法将文件的每一行作为字符串添加到数组列表中

    static ArrayList<String> readFileText (String filename){
    
        //ArrayList to hold all the lines
        ArrayList<String> lines = null;
        //Get lines of text (Strings) as a stream
        try (Stream<String> stream = Files.lines(Paths.get(filename))){
            // convert stream to a List-type object
            lines = (ArrayList<String>)stream.collect(Collectors.toList());
        }
        catch (IOException ioe){
            System.out.println("\nCould not read lines of text from the file.");
        }
        catch (SecurityException se){
            System.out.println("Could not read the file provided." + 
              "Please check if you have permission to access it.");
        }
    
        return lines;
    }
    
    然后,您的主要方法只有两行(考虑到您只是简单地解决了您发布的问题,仅此而已):

    publicstaticvoidmain(字符串[]args){
    ArrayList lines=Class.readFileText(“input.txt”);
    Class.writeFileText(“output.txt”,行);
    }
    
    这里,Class指静态方法所在的类名

    上述方法取自GitHub存储库


    首先,基于你的问题,如果你能逐行阅读,这将是最有益的。幸运的是,通过Java-8的Streams实现,您可以做到这一点

    该方法将文件的每一行作为字符串添加到数组列表中

    static ArrayList<String> readFileText (String filename){
    
        //ArrayList to hold all the lines
        ArrayList<String> lines = null;
        //Get lines of text (Strings) as a stream
        try (Stream<String> stream = Files.lines(Paths.get(filename))){
            // convert stream to a List-type object
            lines = (ArrayList<String>)stream.collect(Collectors.toList());
        }
        catch (IOException ioe){
            System.out.println("\nCould not read lines of text from the file.");
        }
        catch (SecurityException se){
            System.out.println("Could not read the file provided." + 
              "Please check if you have permission to access it.");
        }
    
        return lines;
    }
    
    然后,您的主要方法只有两行(考虑到您只是简单地解决了您发布的问题,仅此而已):

    publicstaticvoidmain(字符串[]args){
    ArrayList lines=Class.readFileText(“input.txt”);
    Class.writeFileText(“output.txt”,行);
    }
    
    这里,Class指静态方法所在的类名

    上述方法取自GitHub存储库


    你能分享你的代码吗?你能分享你的代码吗?字符串行;列表行=新的ArrayList();while((line=in.readLine())!=null){//line=line.replaceAll(“\t”,”);//line=line.replaceAll(“\n”,”);//line=line.replaceAll(“,”);line=line.replaceAll([\\s\\u00A0]+”,“”);System.out.println(“\n”);lines.add(line);System.out.println(line)//writer.write(line);writer.write(line);//fos.write(line);是的,我想在每一行上迭代,我会尝试这个。非常感谢:)你好,我再次尝试了你的代码,为了在文件中写入文本,我使用了FileOutputStream和BufferedWriter,然后我在这一行之后添加了这一行
    line=line.replaceAll([\\s\\u00A0]+,”);
    line+=“\r\n”这是一个干净的代码:
    File fout=new File(“out.txt”);FileOutputStream fos=new FileOutputStream(fout);BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(fos));String line;while..line=“ABCDEF\t GHIJ KLMN\n\r”System.out.println(“ligne normale:”;line=line.replaceAll(“\t”,”);line=line.replaceAll(“\n”,”);line=line.replaceAll(“,”);line=line.replaceAll([\\s\\u00A0]+”,”);line+=“\r\n”;bw.write(line);bw.close();
    String-line;List-lines=new-ArrayList();而((line=in.readLine())!=null){//line=line.replaceAll(“\t”;//line=line.replaceAll(“\n”,”,“,”);//line=line.replaceAll(“,”);line=line.replaceAll([\\s\\u00A0]+“,”);System.out.println(“\n”);lines.add(line);System.out.println(line);//writer.write(line);writer.write(line);//fos.write(line);是的,我想在每一行上迭代,将尝试此操作。非常感谢:)您好,我再次尝试了您的代码,为了在文件中写入文本,我使用了FileOutputStream和BufferedWriter,然后在这一行之后添加了这一行
    line=line.replaceAll([\\s\\u00A0]+,”);
    line+=“\r\n”这是一个干净的代码:
    File fout=new File(“out.txt”);FileOutputStream fos=new FileOutputStream(fout);BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(fos));字符串行;while..line=