Java SEを使用してtxtファイルからすべての空白と空の行を削除するにはどうすればよいですか?
入力:
qwe
qweqwe
qwe
qwe
出力:
qwe
qweqwe
qwe
qwe
ありがとう!
Java SEを使用してtxtファイルからすべての空白と空の行を削除するにはどうすればよいですか?
入力:
qwe
qweqwe
qwe
qwe
出力:
qwe
qweqwe
qwe
qwe
ありがとう!
このようなものはどうですか:
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を参照してください。http: //download.oracle.com/javase/7/docs/api/java/io/FileReader.html http://download.oracle.com/javase/7/docs/api /java/io/FileWriter.html
Trim()関数を見てください
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#trim()
また、いくつかのコードが役立ちます...
...
Scanner scanner = new Scanner(new File("infile.txt"));
PrintStream out = new PrintStream(new File("outfile.txt"));
while(scanner.hasNextLine()){
String line = scanner.nextLine();
line = line.trim();
if(line.length() > 0)
out.println(line);
}
...
このサイトの質問に答えるのはこれが初めてなので、理解してください。たくさんの検索を行った後、これが私に役立つことがわかりました。
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();
各行のスペースを削除し、空の行とnull行を考慮しないでください。
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;
}
同じファイル内の空の行を削除するために使用されます。
public static void RemoveEmptyLines(String FilePath) throws IOException
{
File inputFile = new File(FilePath);
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
String inputFileReader;
ArrayList <String> DataArray = new ArrayList<String>();
while((inputFileReader=reader.readLine())!=null)
{
if(inputFileReader.length()==0)
{
continue;
}
DataArray.add(inputFileReader);
}
reader.close();
BufferedWriter bw = new BufferedWriter(new FileWriter(FilePath));
for(int i=0;i<DataArray.size();i++)
{
bw.write(DataArray.get(i));
bw.newLine();
bw.flush();
}
bw.close();
}
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();
}
}
}
正規表現が必要なだけだと思います。
txt= txt.replaceAll("\\n\\s*\\n", "\n"); //remove empty lines
txt= txt.replaceAll("\\s*", ""); //remove whitespaces
ファイルの読み取り/書き込みに関しては、その方法を見つけるための他のリソースがたくさんあります。