Java 删除所有空格和空行
如何使用JavaSE从txt文件中删除所有空格和空行 输入:Java 删除所有空格和空行,java,file,whitespace,blank-line,Java,File,Whitespace,Blank Line,如何使用JavaSE从txt文件中删除所有空格和空行 输入: qwe qweqwe qwe qwe 输出: qwe qweqwe qwe qwe 谢谢 看看trim()函数 另外,一些代码也会很有帮助……这样的代码怎么样: FileReader fr = new FileReader("infile.txt"); BufferedReader br = new BufferedReader(fr); FileWriter fw = new FileWriter("ou
qwe
qweqwe
qwe
qwe
输出:
qwe
qweqwe
qwe
qwe
谢谢 看看trim()函数
另外,一些代码也会很有帮助……这样的代码怎么样:
FileReader fr = new FileReader("infile.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("outfile.txt");
String line;
while((line = br.readLine()) != null)
{
line = line.trim(); // remove leading and trailing whitespace
if (!line.equals("")) // don't write out blank lines
{
fw.write(line, 0, line.length());
}
}
fr.close();
fw.close();
注意-未经测试,可能不是完美的语法,但为您提供了遵循的想法/方法
请参阅以下JavaDocs以供参考:
< /p> 为每行删除空格,不要考虑空行和空行:
String line = buffer.readLine();
while (line != null) {
line = removeSpaces(line);
//ignore empty lines
if (line.isEmpty()) return;
....code....
line = buffer.readLine();
}
public String removeSpaces (String arg)
{
Pattern whitespace = Pattern.compile("\\s");
Matcher matcher = whitespace.matcher(arg);
String result = "";
if (matcher.find()) {
result = matcher.replaceAll("");
}
return result;
}
用于删除同一文件中的空行
公共静态void removemptyline(字符串文件路径)引发IOException
{
文件输入文件=新文件(文件路径);
BufferedReader reader=新BufferedReader(新文件读取器(inputFile));
字符串输入文件读取器;
ArrayList DataArray=新的ArrayList();
而((inputFileReader=reader.readLine())!=null)
{
if(inputFileReader.length()=0)
{
继续;
}
添加(inputFileReader);
}
reader.close();
BufferedWriter bw=新的BufferedWriter(新文件写入程序(文件路径));
对于(int i=0;i这是我第一次在这个网站上回答一个问题,所以请大家理解,经过大量搜索,我发现这个对我来说很有用
FileReader fr = new FileReader("Input_Code.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("output_Code.txt");
String line;
while((line = br.readLine()) != null)
{
line = line.trim(); // remove leading and trailing whitespace
line=line.replaceAll("\\s+", " ").trim().concat("\n");
if (!line.equals("")) // don't write out blank lines
{
fw.write(line, 0, line.length());
}
}
fr.close();
fw.close();
我想您只需要一个正则表达式:
txt= txt.replaceAll("\\n\\s*\\n", "\n"); //remove empty lines
txt= txt.replaceAll("\\s*", ""); //remove whitespaces
至于读/写文件,还有很多其他资源可以找到如何做到这一点。给我们展示你的代码到目前为止你有什么代码?我会回答的,但我还需要先看看这是否是家庭作业。不是家庭作业。想不出最有效的方法来读取非常大的文本文件并删除所有空格和空格空行。这将删除文件中的所有换行。这是字符串对象中已嵌入的唯一有效解决方案。完全不需要执行任何其他操作。这应设置为答案返回字符串的副本,并省略前导和尾随空格。
它不会删除文本中的空格t文件,仅前导和尾随。这不是OP要求的。OP希望删除所有空格和制表符。在此程序中,我删除了所有空格,并在一行中读取了文件中的所有内容。请在回答问题时更正键入错误。
package com.home.interview;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class RemoveInReadFile {
public static void main(String[] args) {
try {
Scanner scanner = new Scanner(new File("Readme.txt"));
while(scanner.hasNext())
{
String line = scanner.next();
String lineAfterTrim = line.trim();
System.out.print(lineAfterTrim);
}
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
FileReader fr = new FileReader("Input_Code.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("output_Code.txt");
String line;
while((line = br.readLine()) != null)
{
line = line.trim(); // remove leading and trailing whitespace
line=line.replaceAll("\\s+", " ").trim().concat("\n");
if (!line.equals("")) // don't write out blank lines
{
fw.write(line, 0, line.length());
}
}
fr.close();
fw.close();
txt= txt.replaceAll("\\n\\s*\\n", "\n"); //remove empty lines
txt= txt.replaceAll("\\s*", ""); //remove whitespaces