4

私は次のような文字列を持っています:

string = abcdefghabcd

ここで、の最初のオカレンスを置き換えたいとしましょうa。私はこのようなことを試みました:

string[string.indexOf('a')] = '0'

しかし、これは機能していないようです。私がこれを行うことができる他の方法はありますか?

前もって感謝します。

4

3 に答える 3

7

Javaでは、String.replaceFirst()を使用できます。

String s = "abcdefghabcd";
s = s.replaceFirst("a", "0");
System.out.println(s);

出力は次のようになります:

0bcdefghabcd

警告:replaceFirst()メソッドは正規表現を取ります:したがって、特殊文字を置き換える必要がある場合は、その前に[aを付けてエスケープする必要があります。特殊文字自体であるため、次のように2倍にする必要があります。\\

s = s.replaceFirst("\\[", "0");

これがJava正規表現に関するドキュメントです。また、文字列内の文字の操作に関するOracleのJavaチュートリアルもあります

于 2012-08-21T07:33:24.887 に答える
2

Javaの文字列は不変であることに注意する必要があります。変更することはできません。文字列を「変更」するために使用するメソッドはすべて、新しい文字列を返す必要があります。文字列を直接変更する場合は、StringBuilderなどの可変文字列型を使用する必要があります。

String APIドキュメントには、s.replace()、s.replaceAll()、s.replaceFirst()など、文字列の変更バージョンを取得するのに役立つ多くのメソッドがあります。または、 substringと"+"を使用して、新しい文字列を作成します。

最初の例のように文字列を配列として扱いたい場合は、String.getCharsを使用して文字の配列を取得し、それを操作してから、文字列コンストラクターString(char [])を使用してに変換し直すことができます。文字列オブジェクト。

于 2012-08-21T07:46:57.023 に答える
1

このプログラムでは、Java の String クラスの replaceFirst() メソッドを使用する必要があります。

  /*
Java String replace example.
This Java String Replace example describes how replace method of java String
class can be used to replace character or substring by new one.
*/

public class JavaStringReplaceExample{

    public static void main(String args[])
{

String str="abcdefghabcd";

 System.out.println(str.replaceFirst("a", "0"));
}
 }

詳細については、こちらを参照してください。

于 2012-08-21T07:41:16.453 に答える