我有以下格式的文本文件数:
196903274115371008 @266093898
Prince George takes his first public steps with his mom, Catherine, Duchess of
Cambridge.
除了第一个新行字符外,我想删除所有空格+新行字符。所以我想在上面这样:
196903274115371008@266093898
Prince George takes his first public steps with his mom, Catherine, Duchess of Cambridge.
我写了以下代码:
package remove_white_space222;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Remove_white_space222 {
public static void main(String[] args) throws FileNotFoundException, IOException {
FileReader fr = new FileReader("input.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
line=line.replaceAll("\\s+", " ");
fw.write(line);
}
fr.close();
fw.close();
}
}
在此先感谢您的帮助,,,,
这是一种方法:
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("input.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("outfile.txt");
String line;
int lineNum = 0;
while((line = br.readLine()) != null)
{
//check if we are working with the first two lines
//(which should remain untouched)
if (lineNum > 1) {
//make sure we ignore any empty lines
if (line.trim().length() > 0) {
//add a space to the end of each line to make
//padding before we append the next line.
line=line.trim().replaceAll("\\s+", " ") + " ";
}
} else {
//remove all whitespace.
line = line.trim().replaceAll("\\s", "");
line = line + "\n";
}
fw.write(line);
lineNum++;
}
fr.close();
fw.close();
}
输出:
196903274115371008@266093898
Prince George takes his first public steps with his mom, Catherine, Duchess of Cambridge. %
您可以通过枚举使用状态在第一行和后面的所有空行后添加换行符。
package remove_white_space222;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter
import java.io.IOException;
public class Remove_white_space222 {
enum Status {
FIRST, EMPTY, NORMAL;
}
public static void main(String[] args) throws FileNotFoundException, IOException {
FileReader fr = new FileReader("input.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("outfile.txt");
PrintWriter pw = new PrintWriter(fw);
String line;
while((line = br.readLine()) != null)
{
line = line.trim(); // remove leading and trailing whitespace
line=line.replaceAll("\\s+", " ");
fw.write(line);
if (status != Status.NORMAL) {
if ((status == Status.FIRST) || line.isEmpty()) {
pw.println();
status = Status.EMPTY;
} else {
status = Status.NORMAL;
}
}
}
fr.close();
fw.close();
}
}