私は次のような文字列を持っています:
string = abcdefghabcd
ここで、の最初のオカレンスを置き換えたいとしましょうa
。私はこのようなことを試みました:
string[string.indexOf('a')] = '0'
しかし、これは機能していないようです。私がこれを行うことができる他の方法はありますか?
前もって感謝します。
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チュートリアルもあります。
Javaの文字列は不変であることに注意する必要があります。変更することはできません。文字列を「変更」するために使用するメソッドはすべて、新しい文字列を返す必要があります。文字列を直接変更する場合は、StringBuilderなどの可変文字列型を使用する必要があります。
String APIドキュメントには、s.replace()、s.replaceAll()、s.replaceFirst()など、文字列の変更バージョンを取得するのに役立つ多くのメソッドがあります。または、 substringと"+"を使用して、新しい文字列を作成します。
最初の例のように文字列を配列として扱いたい場合は、String.getCharsを使用して文字の配列を取得し、それを操作してから、文字列コンストラクターString(char [])を使用してに変換し直すことができます。文字列オブジェクト。
このプログラムでは、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"));
}
}
詳細については、こちらを参照してください。