53

次の文字列の最初の出現を置き換えたいと思います。

  String test = "see Comments, this is for some test, help us"

**テストに次のような入力が含まれている場合は、置き換えないでください

  1. コメントを参照してください(最後にスペースがあります)
  2. コメントを見る、
  3. コメントを見る**

次のように出力を取得したいのですが、

 Output: this is for some test, help us

前もって感謝します、

4

7 に答える 7

99

replaceFirst(String regex, String replacement)Stringのメソッドを使用できます。

于 2012-06-05T12:42:10.850 に答える
22

独自のコードを作成するために、すでにテストされ、十分に文書化されたライブラリを使用する必要があります。

org.apache.commons.lang3.
  StringUtils.replaceOnce("coast-to-coast", "coast", "") = "-to-coast"

Javadoc

大文字と小文字を区別しないバージョンもあります(これは良いことです)。

Maven

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.7</version>
</dependency>

クレジット

私の答えは次の拡張です:https ://stackoverflow.com/a/10861856/714112

于 2016-09-26T03:45:52.700 に答える
19

次のステートメントを使用して、最初に出現するリテラル文字列を別のリテラル文字列に置き換えることができます。

String result = input.replaceFirst(Pattern.quote(search), Matcher.quoteReplacement(replace));

ただし、これはバックグラウンドで多くの作業を行い、リテラル文字列を置き換えるための専用関数では必要ありません。

于 2017-04-16T11:18:30.377 に答える
15

使用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);

出力:

これはいくつかのテストのためです、私たちを助けてください

于 2012-06-05T12:41:00.040 に答える
3

以下の方法が可能です。

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;

}

次のリンクは、正規表現の有無にかかわらず、文字列の最初の出現を置き換えるための例を提供します。

于 2017-04-25T15:59:13.047 に答える
-1

String replaceFirstを使用して、区切り文字の最初のインスタンスを一意のものにスワップします。

String input = "this=that=theother"
String[] arr = input.replaceFirst("=", "==").split('==',-1);
String key = arr[0];
String value = arr[1];
System.out.println(key + " = " + value);
于 2013-06-14T19:43:37.583 に答える
-1

この方法を使用することもできます。

public static String replaceFirstOccurance(String str, String chr, String replacement){
    String[] temp = str.split(chr, 2);
    return temp[0] + replacement + temp[1];
}
于 2021-10-02T11:24:49.587 に答える