Je veux supprimer une partie de chaîne d'un caractère, c'est-à-dire:
Chaîne source:
manchester united (with Nice players)
Chaîne cible:
manchester united
Il y a plusieurs façons de le faire. Si vous avez la chaîne que vous souhaitez remplacer, vous pouvez utiliser les méthodes replace
ou replaceAll
de la classe String
. Si vous souhaitez remplacer une sous-chaîne, vous pouvez l'obtenir à l'aide de l'API substring
.
Par exemple
String str = "manchester united (with Nice players)";
System.out.println(str.replace("(with Nice players)", ""));
int index = str.indexOf("(");
System.out.println(str.substring(0, index));
Pour remplacer le contenu entre "()", vous pouvez utiliser:
int startIndex = str.indexOf("(");
int endIndex = str.indexOf(")");
String replacement = "I AM JUST A REPLACEMENT";
String toBeReplaced = str.substring(startIndex + 1, endIndex);
System.out.println(str.replace(toBeReplaced, replacement));
String Replace
String s = "manchester united (with Nice players)";
s = s.replace(" (with Nice players)", "");
Edit:
par index
s = s.substring(0, s.indexOf("(") - 1);
Utilisez String.Replace ():
http://www.daniweb.com/software-development/Java/threads/73139
Exemple:
String original = "manchester united (with Nice players)";
String newString = original.replace(" (with Nice players)","");
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jsZhSCreplaceFirst()
PEUT ÊTRE REMPLACÉ PAR replaceAll()
En utilisant StringBuilder, vous pouvez remplacer la méthode suivante.
StringBuilder str = new StringBuilder("manchester united (with Nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
Dans un premier temps, je voudrais scinder la chaîne d'origine en un tableau de chaînes avec un jeton "(") et la chaîne en position 0 du tableau de sortie correspond à ce que vous souhaitez obtenir.
String[] output = originalString.split(" (");
String result = output[0];
Vous devez utiliser la méthode substring () de l'objet String.
Voici un exemple de code:
Hypothèse: je suppose ici que vous voulez récupérer la chaîne jusqu'à la première parenthèse
String strTest = "manchester united(with Nice players)";
/*Get the substring from the original string, with starting index 0, and ending index as position of th first parenthesis - 1 */
String strSub = strTest.subString(0,strTest.getIndex("(")-1);
tilisation de StringUtils dans commons lang
Une chaîne source nulle renverra null. Une chaîne source vide ("") renverra la chaîne vide. Une chaîne null remove retournera la chaîne source. Une chaîne de suppression vide ("") retournera la chaîne source.
String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"
// Java program to remove a substring from a string
public class RemoveSubString {
public static void main(String[] args) {
String master = "1,2,3,4,5";
String to_remove="3,";
String new_string = master.replace(to_remove, "");
// the above line replaces the t_remove string with blank string in master
System.out.println(master);
System.out.println(new_string);
}
}
Vous pouvez utiliser replace
pour réparer votre chaîne. Ce qui suit retournera tout ce qui précède un "(" et supprimera également tous les espaces blancs de début et de fin. Si la chaîne commence par un "(", elle restera telle quelle.
str = "manchester united (with Nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched
Si vous avez juste besoin de tout supprimer après le "(", essayez ceci. Ne fait rien si aucune parenthèse.
StringUtils.substringBefore(str, "(");
S'il peut y avoir du contenu après les parenthèses, essayez ceci.
String toRemove = StringUtils.substringBetween(str, "(", ")");
String result = StringUtils.remove(str, "(" + toRemove + ")");
Pour supprimer les espaces finaux, utilisez str.trim()
Apache StringUtils les fonctions sont nulles, vides et sans correspondance