web-dev-qa-db-fra.com

Supprimer une partie de chaîne dans Java

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
68
zmki

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));
142
mprabhat

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);
28
Shawn Janas

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)","");
18
Matt Cashatt
originalString.replaceFirst("[(].*?[)]", "");

https://ideone.com/jsZhSC
replaceFirst() PEUT ÊTRE REMPLACÉ PAR replaceAll()

6
1111161171159459134

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, "");
6
user982733

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];
6
Nicolas Epaminonda

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);
5
Gopal Nair

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"
2
Igor Vuković
// 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);

    }
}
1
KIBOU Hassan

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
0
slindsey3000

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

0
Gibolt