Comment puis-je supprimer les deux derniers caractères 05
de la chaîne simple?
Simple:
"Apple car 05"
Code
String[] lineSplitted = line.split(":");
String stopName = lineSplitted[0];
String stop = stopName.substring(0, stopName.length() - 1);
String stopEnd = stopName.substring(0, stop.length() - 1);
ligne originale avant de diviser ":"
Apple car 04:48 05:18 05:46 06:16 06:46 07:16 07:46 16:46 17:16 17:46 18:16 18:46 19:16
Soustraire -2
ou -3
base de suppression du dernier espace également.
public static void main(String[] args) {
String s = "Apple car 05";
System.out.println(s.substring(0, s.length() - 2));
}
sortie
Apple car
Utilisez String.substring (beginIndex, endIndex)
str.substring(0, str.length() - 2);
La sous-chaîne commence au beginIndex spécifié et s'étend au caractère situé à l'index (endIndex - 1).
Vous pouvez utiliser la méthode suivante pour supprimer le dernier n
caractère -
public String removeLast(String s, int n) {
if (null != s && !s.isEmpty()) {
s = s.substring(0, s.length()-n);
}
return s;
}
Vous pouvez utiliser la fonction substring
:
s.substring(0,s.length() - 2));
Avec le premier 0
, Vous dites à substring
qu'il doit commencer par le premier caractère de votre chaîne et avec la s.length() - 2
qu'il doit finir 2 caractères avant le La corde se termine.
Pour plus d'informations sur la fonction substring
, vous pouvez voir ici:
http://docs.Oracle.com/javase/7/docs/api/Java/lang/String.html
Vous pouvez également essayer le code suivant avec la gestion des exceptions. Ici vous avez une méthode removeLast(String s, int n)
(c'est en fait une version modifiée de la réponse de masud.m). Vous devez fournir les String
s et le nombre de char
que vous souhaitez supprimer de la dernière à cette fonction removeLast(String s, int n)
. Si le nombre de char
s à supprimer du dernier est supérieur à la longueur donnée de String
, il envoie alors un StringIndexOutOfBoundException
avec un message personnalisé -
public String removeLast(String s, int n) throws StringIndexOutOfBoundsException{
int strLength = s.length();
if(n>strLength){
throw new StringIndexOutOfBoundsException("Number of character to remove from end is greater than the length of the string");
}
else if(null!=s && !s.isEmpty()){
s = s.substring(0, s.length()-n);
}
return s;
}
Une autre solution consisterait à utiliser une sorte de regex
:
par exemple:
String s = "Apple car 04:48 05:18 05:46 06:16 06:46 07:16 07:46 16:46 17:16 17:46 18:16 18:46 19:16";
String results= s.replaceAll("[0-9]", "").replaceAll(" :", ""); //first removing all the numbers then remove space followed by :
System.out.println(results); // output 9
System.out.println(results.length());// output "Apple car"
C'était presque correct, changez votre dernière ligne comme suit:
String stopEnd = stop.substring(0, stop.length() - 1); //replace stopName with stop.
OU
vous pouvez remplacer vos deux dernières lignes;
String stopEnd = stopName.substring(0, stopName.length() - 2);