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
Je veux obtenir la sortie comme suit,
Output: this is for some test, help us
Merci d'avance,
Vous pouvez utiliser la méthode replaceFirst(String regex, String replacement)
de String.
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"
Il existe même une version qui ne respecte pas la casse (ce qui est bien).
<dependency>
<groupId>org.Apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
Ma réponse est une augmentation de: https://stackoverflow.com/a/10861856/714112
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
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.
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.