2017-07-28 10 views
0

以下の文字列のように1行または2行の文字列をサーバーから受け取っています。私はJava文字列TRIM関数が機能しない

str = str.trim(); 

str = str.replace(String.valueOf((char) 160), " ").trim(); 

str = str.replaceAll("\u00A0", ""); 

のようないくつかの方法を試してみましたが、どれも作業していない

String str = "abc*******   
      ********"; 

は私の文字列の後にスペースとして*考えてみましょう。 なぜスペースを削除できないのですか?

+0

デバッグのヘルプ(「このコードが動作しないのはなぜですか?」)には、目的の動作、特定の問題またはエラー、質問自体にそれを再現するのに必要なコード。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[mcve]を作成する方法。あなたの*質問を改善するために "編集"リンクを使用してください - コメントでより多くの情報を追加しないでください。ありがとう! – GhostCat

+1

安心:trim()が動作しています。しかし、私たちはあなたのコードにそのような入力に関する問題を見つけるのに役立つことはできません。言い換えれば、問題を再現するための** real ** [mcve]を提供します。 – GhostCat

+0

文字は実際にスペースですか?またはいくつかの特殊文字?そしてあなたの弦の中に改行がありますか? – f1sh

答えて

0

あなたは次のように試してみてください:

str = str.replaceAll("\n", "").trim(); 

あなたは、その文字列中に改行があると観察することができます。最初に新しい行 "\ n"をスペース( "")に置き換えてトリミングする

+0

私は分かりません。ドキュメントでは、 'trim 'はUnicodeの小数点以下20未満の文字を削除すべきであることを明確に述べています。 '\ n'は10の10進表現を持ちます。したがって、trimはそれを削除しなければなりません。また、おそらくこれは無意味ですが、 '' 'はスペースではありません。' 'は' 'です。 '' ''は空です。 – tradeJmark

+0

私は知っているが、彼女の質問によると私は新しい行があることを理解しているので、トリムはそこで働いていなかった。 – Tufan

+0

''\ n''は改行である。 'trim'は常に改行を取り除かなければなりません。 – tradeJmark

0

あなたは実行する必要があります。 私はあなたの3つの方法を試してみましたstr = str.replaceAll("[.]*[\\s\t]+$", "");

0

を動作するように、これを試してみてください。私は、だから私はあなたが助けを得るためにあなたの質問は、より良い記述するべきだと思う彼らは

String str = "abc*******"   
     + "********"; 

が好きでなければなりません実際には、Javaで文字列

String str = "abc*******   
     ********"; 

を好きではないだろう、あなたの質問が正しくまたは完了していない記述だと思います。

0

、およびそれらすべての作業:

str = str.replaceAll("\n", ""); 

を私の場合の使用の際には、関数トリム()

+0

これは質問のコメントとして役立たないでしょうか?それは本当に答えを提供しません。 – tradeJmark

関連する問題