w3schools tutorialspoint length java string substring

tutorialspoint - substring java indexof



Eliminar los dos Ășltimos caracteres de la cadena (7)

Era casi correcto simplemente cambiar su última línea como:

String stopEnd = stop.substring(0, stop.length() - 1); //replace stopName with stop.

O

puedes reemplazar tus últimas dos líneas;

String stopEnd = stopName.substring(0, stopName.length() - 2);

Esta pregunta ya tiene una respuesta aquí:

¿Cómo puedo eliminar los últimos dos caracteres 05 de la cadena simple?

Sencillo:

"apple car 05"

Código

String[] lineSplitted = line.split(":"); String stopName = lineSplitted[0]; String stop = stopName.substring(0, stopName.length() - 1); String stopEnd = stopName.substring(0, stop.length() - 1);

línea original antes de partir ":"

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


Puede usar el siguiente método para eliminar el último carácter n -

public String removeLast(String s, int n) { if (null != s && !s.isEmpty()) { s = s.substring(0, s.length()-n); } return s; }


Puede usar la función de substring :

s.substring(0,s.length() - 2));

Con el primer 0 , le dice a la substring que tiene que comenzar en el primer carácter de su cadena y con la s.length() - 2 que tiene que terminar 2 caracteres antes de que la Cadena termine.

Para obtener más información acerca de la función de substring , puede verla aquí:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html


Reste -2 o -3 base para eliminar el último espacio también.

public static void main(String[] args) { String s = "apple car 05"; System.out.println(s.substring(0, s.length() - 2)); }

Salida

apple car


También puede probar el siguiente código con manejo de excepciones. Aquí tiene un método removeLast(String s, int n) (en realidad es una versión modificada de la respuesta de masud.m ). Debe proporcionar los String y la cantidad de char que desea eliminar de la última a esta función removeLast(String s, int n) . Si el número de caracteres que tiene que eliminar del último es mayor que la longitud de String dada, arroja una StringIndexOutOfBoundException con un mensaje personalizado -

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; }


Una solución alternativa sería usar algún tipo de regex :

por ejemplo:

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"