次の文字列の最初の出現を置き換えたいです。
String test = "see Comments, this is for some test, help us"
**テストに次のような入力が含まれる場合、置き換えないでください
次のように出力を取得したい
Output: this is for some test, help us
前もって感謝します、
Stringの replaceFirst(String regex, String replacement)
メソッドを使用できます。
独自のコードを記述するために、テスト済みで十分に文書化されたライブラリを使用する必要があります。
org.Apache.commons.lang3.
StringUtils.replaceOnce("coast-to-coast", "coast", "") = "-to-coast"
大文字と小文字を区別しないバージョンもあります(これは良いことです)。
<dependency>
<groupId>org.Apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
私の答えは: https://stackoverflow.com/a/10861856/714112 の増強です。
substring(int beginIndex)
を使用します。
String test = "see Comments, this is for some test, help us";
String newString = test.substring(test.indexOf(",") + 2);
System.out.println(newString);
出力:
これはいくつかのテストのためです、私たちを助けます
次のステートメントを使用して、文字列の最初の出現を置き換えることができます。
String result = input.replaceFirst(Pattern.quote(stringToReplace), stringToReplaceWith);
この link には、テストケースを含む完全なプログラムが含まれています。
次の方法を使用できます。
public static String replaceFirstOccurrenceOfString(String inputString, String stringToReplace,
String stringToReplaceWith) {
int length = stringToReplace.length();
int inputLength = inputString.length();
int startingIndexofTheStringToReplace = inputString.indexOf(stringToReplace);
String finalString = inputString.substring(0, startingIndexofTheStringToReplace) + stringToReplaceWith
+ inputString.substring(startingIndexofTheStringToReplace + length, inputLength);
return finalString;
}
link に続いて、正規表現の有無にかかわらず文字列の最初の出現を置き換える例を示します。