これを正規表現で動作させようとしていますが、失敗してしまいました。JavaはHTMLレンダラーのように白い空白を減らす
ウェブブラウザがHTML文字列をレンダリングする方法に文字列を近づけるにはどうすればよいですか? 例HTML:
<html>
Hel
lo
how
are you
</html>
がレンダリングされる:
Hel lo how are you
は、私はそれが
Hello how are you
になりたいので、HTMLとの違いは、明示的なスペースのない改行がちょうど除去されることがあります。 Javaでは、この文字列は次のようになります。私は、改行が続く末尾のスペースといくつかのより多くのテキストとラインを持っている場合は :
\tHel\nlo \n how\n are you
私の現在のソリューション:
// remove linebreaks and tabs and any leading or trailing whitespace
// this is necessary to avoid converting \t or \n to a space
script = script.replaceAll("\\s+\n\\s+", "");
script = script.replaceAll("\\s+\t\\s+", "");
// remove any length of whitespace and replace it with one
script = script.replaceAll("\\s+", " ");
// rewmove leading and trailing whitespaces
script = script.trim();
は一つだけ問題があります、末尾のスペースが削除されます:
Hello \nhow are you?
は
01に低減されますので、下記のスペースマーカーとしてのアンダースコア(_)を使用することは真である必要があります。
_ = _
__ = _
\t\n_ = _
_\t\n = _
\t_\n = _
_\t_\n_ = _
\n = // nothing
\t = // nothing
\t\n = // nothing
でReplaceAll(正規表現、文字列)をどのような組み合わせで、私が使用する必要があるでしょうか?
あなたは正規表現を探しています。 – SLaks
[Javaの2つ以上のスペースを文字列内の単一スペースで置き換え、先頭のスペースのみを削除する方法](http://stackoverflow.com/questions/2932392/java-how-to-replace-2-or-more) -space-with-string-and-delete-lead) – Berger
.replaceAll( "+"、 "") – mike