web-dev-qa-db-fra.com

Supprimer les deux derniers caractères de la chaîne

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
46
TheBook

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
78
Ankur Singhal

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).

20

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;
}
4
masud.m

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

1
Francisco Romero

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 chars à 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;

    }
1
Razib

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"
0
nafas

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);
0
Saif