0

入力として文字列を受け取り、そこからすべてのスペースと改行文字を取り除くメソッドがあります。これを実現するために、Java ライブラリの次のメソッドを使用しています。

public String clean(String s) {
    return s.replaceAll(System.lineSeparator(),"").replaceAll(" ","");
}

これは Linux では問題なく動作しますが、Windows の場合、行区切り文字が文字列に含まれているため、行区切り文字を削除できません。

足りないものはありますか?Unix ベースのシステムでは改行文字が /n であり、Windows でそれが何であるかはわかりませんが、Java のドキュメントにあるように、System.lineSeparator() メソッドはプラットフォームに依存しない行区切り文字を提供する必要があります。

4

2 に答える 2

8

スペースを削除しているので、これを試すことをお勧めします

public static String clean(String s) {
    return s.replaceAll("\\s+", "");
}

あなたが抱えている問題は、Windows で書かれたファイルを Linux ボックスで読んでいることだと思います。\rコードは、Windows にある余分なものを削除しません。

于 2013-07-31T20:53:18.167 に答える
1

\nだけでなくすべてを置き換えてみてください\r\n。はい、lineSeparator はこれを処理する必要がありましたが、おそらく処理されませんでした。

于 2013-07-31T20:54:33.077 に答える