web-dev-qa-db-fra.com

Comment remplacer la première occurrence de chaîne dans Java

Je veux remplacer la première occurrence de String dans ce qui suit.

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

** Si le test contient l'entrée comme suit, il ne doit pas remplacer

  1. Voir les commentaires, (avec un espace à la fin)
  2. Voir les commentaires,
  3. Voir les commentaires**

Je veux obtenir la sortie comme suit,

 Output: this is for some test, help us

Merci d'avance,

38
Jagadeesh

Vous pouvez utiliser la méthode replaceFirst(String regex, String replacement) de String.

77
Asif

Vous devez utiliser des bibliothèques déjà testées et bien documentées en faveur de l'écriture de votre propre code.

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

Javadoc

Il existe même une version qui ne respecte pas la casse (ce qui est bien).

Maven

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

Crédits

Ma réponse est une augmentation de: https://stackoverflow.com/a/10861856/714112

16
Sridhar Sarnobat

Utilisez 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);

SORTIE:

c'est pour un test, aidez-nous

14
Eng.Fouad

Vous pouvez utiliser l'instruction suivante pour remplacer la première occurrence de la chaîne.

String result = input.replaceFirst(Pattern.quote(stringToReplace), stringToReplaceWith);

Ce lien a un programme complet comprenant des cas de test.

10
Hari Krishna

Vous pouvez utiliser la méthode suivante.

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 fournit des exemples pour remplacer la première occurrence de chaîne en utilisant avec et sans expressions régulières.

2
user4311153