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