Salut,
Une solution peut consister à prendre tous les caractères sauf le dernier :
System.out.println( chaine.substring(0, chaine.length()-1) ); // attention erreur si chaine vide
S'il s'agit de supprimer tout ce qu'il y derrière la dernière virgule, y compris celle-ci, c'est chercher la dernière virgule (lastIndexOf) et prendre ce qu'il y a avant :
System.out.println( chaine.substring(0, chaine.lastIndexOf(",")) ); // attention erreur si pas de , dans la chaîne
On peut également utiliser une expression régulière pour chercher ce qu'on veut enlever et le remplacer par une chaîne vide.
Par exemple, en remplaçant le dernier caractère :
System.out.println( chaine.replaceAll( ".\\Z", "") );
S'il y a des caractères derrière la virgule et qu'on veut supprimer la dernière virgule et tout ce qu'il y a après :
System.out.println( chaine.replaceAll( ",[^,]*\\z", "") );
Si on veut supprimer tout ce qu'il y a après le mot soleil :
System.out.println( chaine.replaceAll( "(?<=soleil).*", "") );
Si on veut supprimer le caractère juste après le mot soleil :
System.out.println( chaine.replaceAll( "(?<=soleil).", ""));
Partager