3

string.trim()先頭と末尾のスペースを削除することを学びました。しかし、私の場合はうまくいきません。コードの下で試していますが、出力の先頭と末尾にスペースがあります。しかし、私の期待は、前後にスペースのないテキストです。これが私のコードです。

String s = " Hello Rais ";
s += " Welcome to my World ";
s.trim( );
System.out.println(s);

私を助けてください

4

6 に答える 6

10

trimbackの結果を に再割り当てする必要がありますs:

s = s.trim();

Java の文字列は immutableであるため、ほとんどすべての String クラス メソッドは、文字列をその場で変更するのではなく、新しい文字列を作成して返します。


これはトピックから外れていますが、(そこで述べたようにalmost)、このルールの例外はsubstring、同じ長さの を作成する場合、またはメソッドが同じ値の文字列を返す場合であり、最適化されて、新しい文字列を作成するのではなく、単純に を返しthisます。

String s = "Rohit";
String s2 = s.substring(0, s.length());

System.out.println(s == s2); // will print true
于 2013-02-17T07:46:29.643 に答える
6

Java 文字列はimmutable. したがってs.trim()、元の文字列は変更されませんが、新しい文字列が返されます。

String trimmed  = s.trim();
于 2013-02-17T07:47:45.207 に答える
4

トリムは新しい文字列s=s.trim( );を返すため、追加するだけです。

于 2013-02-17T07:47:13.063 に答える
3

Well..stringは不変オブジェクトです。したがって、trim()を実行するたびに、新しいStringオブジェクトが作成されます。このオブジェクトには、アクセスするための参照が必要です。したがって、次のように、このトリミングされたStringオブジェクトへの参照を割り当ててください。

s = s.trim();

また

trimmedS = s.trim();
于 2013-02-17T07:48:36.963 に答える
3

StringJavaでは不変であることを理解してください。つまり、Stringクラスに対する操作は内部文字列自体を変更しませんが、新しいStringオブジェクトを返します。

だからあなたは本当にする必要があります

s = s.trim()

これは、末尾と先頭のスペースが削除されsた新しいオブジェクトへの参照を割り当てます。String

于 2013-02-17T07:48:47.443 に答える
2

trim関数は空白をトリミングして元の文字列のコピーを返すため、新しく返された文字列を次のように保存する必要がありますs = s.trim()

String#trim()のjavadocsから

trim

public String trim()
Returns a copy of the string, with leading and trailing whitespace omitted.
于 2013-02-17T07:49:50.727 に答える