2011-12-09 6 views
2

javaを使用して文字列のすべてのバックスラッシュをスラッシュに変更する簡単なコードを探しています。"/"を "/"に変更する

私はこれを試しました: word.replaceAll( "\"、 "/");

でも動作しません。これは誰でも簡単に修正できますか?

ありがとう

P.S. また、私の文字列演算がほとんど機能していないことに気がつきました。 toUpperCase()のようなものを試してみましたが、文字列に何も起こりませんでしたか?

+0

スラッシュですべてのバックラッシュを交換することによって動作します。変更が加えられたときに常に新しいコピーが返されます。 –

答えて

4

replaceAll()それが一致するregular expressionsを使用しているため、この場合には、使用する間違っ方法です。

リテラルを置き換えるより簡単なreplace()メソッドが必要です。これを試してみてください:

word = word.replace("\\","/"); 

注:

  1. あなたが別のバックスラッシュでバックスラッシュをエスケープする必要があり、すなわち"\\"あなたは、単一のバックスラッシュ
  2. 文字列である文字列をコーディングする方法であるがimmutableです - 文字列の方法戻り値:結果の文字列... 文字列を返しません。あなたはmyString = myString.someMethod();
+0

完璧!それは今完璧に動作します。ありがとうございました! – intA

+0

@ user1088796問題を解決した場合は、回答を受け入れる必要があります。 – Laf

4

関数は、文字列自体を変更しないように、実装しようとしている変更を含む新しい文字列を返します。あなたが使用する必要があります。この場合、エスケープスラッシュ(\\

+0

申し訳ありませんが、私は元の質問に入力する意味なので、私が使用した関数は:word.replaceAll( "\\"、 "/"); – intA

1

を使用する必要があります\場合:

word.replaceAll(("\\", "/"); 

toUpperCase()戻り文字列、それは呼び出し元の文字列を変更しません。方法。

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html

+0

ああ!それは私が信じている私の問題です。私は単語= word.replaceAll( "\\"、 "/")ありがとう! – intA

1

文字列は不変あるようにそれをコーディングする必要がある理由です。
変更できません。

word = word.something()とする必要があります。

1

あなたがする必要があるのは、word = word.replaceAll( "\"、 "/")です。

文字列を変更できないことを知っておく必要があります。

これらのメソッドは、それが変わることはありませんので、Stringクラスは不変である文字列の文字を反復処理し、

関連する問題