0

電子メール ヘッダーとその値を含むテキスト ファイルがあります。以下のようになります。

X-Originating-IP: [141.12.67.171]
X-EIP: [WrrdRE5IHzynFRch2UnizIKJ909XPTq5]
X-Originating-Email: [reva.reva.reva@hotmail.com]
Message-ID: <SNT139-W588104AB227AA9D1E443ABCF540@phx.gbl>
Content-Type: multipart/mixed;
boundary="_ee82adcf-0995-439f-a6dc-4386dadf9660_"
From: Reva Patil <reva.reva.reva@hotmail.com>  
To: <mueller.reva@yahoo.de>
Subject: Hotmail
Date: Wed, 21 Nov 2012 12:34:46 +0000
Importance: Normal
MIME-Version: 1.0
X-OriginalArrivalTime: 21 Nov 2012 12:34:47.0075 (UTC) FILETIME=[976F7F30:01CDC7E4]

「From:」から始まる行 (winmerge ファイル比較ツールを使用) で、改行の前に空白があることに気付きました。削除したいと思います。実際、ファイル内の各改行の前にあるすべての空白を削除したいと思います。私はすでにここに投稿された質問を読んでいます: Javaで改行の前にスペースを削除しました しかし、残念ながらそれは私を助けませんでした.

Javaでこれを行うためのアドバイスをいただければ幸いです。

4

3 に答える 3

0

ご回答ありがとうございます。

最後に、文字列からすべての空白(改行しない空白を含む)を削除する正規表現を見つけることができました。

str= str.replaceAll("[\\s\\u00A0]+","");
于 2013-01-09T09:56:49.640 に答える
0

ファイルを文字列として持っていると仮定して、これを行います

String trimmed = contents.replaceAll("(?m)\\s+(?=$)", "");

説明:

  • (?m)「改行前後のキャレットとドルの一致」スイッチをオンにします
  • \s+「1 つ以上の空白文字」を意味します
  • (?=$)次の文字 (消費されない) が行末文字であることを意味します
于 2012-12-04T12:52:22.587 に答える
0

使用するGuava

ファイルを読む:

File file = new File(getClass().getResource("/test.txt").getFile());
List<String> lines = null;
try {
    lines = Files.readLines(file, Charsets.UTF_8);
} catch (IOException e) {
    e.printStackTrace();
}

trim()各行。

それらの行をもう一度書きます

使用:ファイル#書き込み

編集:

    File file = new File(getClass().getResource("/test.txt").getFile());
    List<String> lines = null;
    try {
        lines = Files.readLines(file, Charsets.UTF_8);
    } catch (IOException e) {
        e.printStackTrace();
    }

    List<String> trimmedLines = new ArrayList<String>(lines.size());

    File to; /// outputfile
    Charset charSet = Charset.defaultCharset();
    for (String line : lines) {
        Files.write(line.trim(), to, charSet);
    }
于 2012-12-04T12:48:38.903 に答える