Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Quitar carácteres de una cadena

Estas en el tema de Quitar carácteres de una cadena en el foro de Java en Foros del Web. Necesito alguna forma de saber si un String recogido tiene en su última posición un número, o bien en las 2 últimas posiciones, o bien ...
  #1 (permalink)  
Antiguo 31/05/2013, 09:02
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 9 años, 2 meses
Puntos: 0
Quitar carácteres de una cadena

Necesito alguna forma de saber si un String recogido tiene en su última posición un número, o bien en las 2 últimas posiciones, o bien en los 3 ...

He encontrado esto, pero solo sirve para quitar el último carácter sea lo que sea
String cadenaNueva = cadena.substring(0, cadena.length()-1);

¿Alguna idea?
  #2 (permalink)  
Antiguo 31/05/2013, 12:13
Avatar de ggomez91  
Fecha de Ingreso: octubre-2008
Mensajes: 181
Antigüedad: 13 años, 10 meses
Puntos: 13
Respuesta: Quitar carácteres de una cadena

Lo que necesitas es una expresión regular. Usarías una para saber si hay 3 número, una diferente para 2 y otra para uno, En java serían estas:

Código Java:
Ver original
  1. String unNumeroRegex = "^.*\\d$";
  2. String dosNumerosRegex = "^.*\\d{2}$";
  3. String tresNumerosRegex = "^.*\\d{3}$";

La expresión dice: que empiece (^) y tenga n caracteres (.*) y luego N numeros (\d{N}) y termine ($)

Y luego puedes intentar hacer match con Strings y saber si terminan en 1, 2 o 3 números. En el siguiente código te pongo como usarlas, ejecútalo y con eso deberías tener.

Código Java:
Ver original
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3.  
  4.  
  5. public class Re {
  6.     public static void main (String[] args){
  7.         System.out.println("asdj33".matches("^.*\\d$"));
  8.         System.out.println("asdj33".matches("^.*\\d{2}$"));
  9.         System.out.println("asdj33".matches("^.*\\d{3}$"));
  10.     }
  11. }
Saludos!

Última edición por ggomez91; 31/05/2013 a las 12:22 Razón: Un error.
  #3 (permalink)  
Antiguo 01/06/2013, 07:52
 
Fecha de Ingreso: mayo-2013
Mensajes: 68
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Quitar carácteres de una cadena

Código:
public String getLetras(String palabra)
    {
        String respuesta="";
        if(palabra.matches("^.*\\d$"))
        {
            respuesta = palabra.substring(0, palabra.length()-1);
        }
        if(palabra.matches("^.*\\d{2}$"))
        {
            respuesta = palabra.substring(0, palabra.length()-2);
        }
        if(palabra.matches("^.*\\d{3}$"))
        {
            respuesta = palabra.substring(0, palabra.length()-3);
        }

        return respuesta;
    }
Este es el método resultante por si a alguien le interesa, muchas gracias ^_^
  #4 (permalink)  
Antiguo 01/06/2013, 14:44
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 10 años, 7 meses
Puntos: 34
Respuesta: Quitar carácteres de una cadena

También puedes hacerlo de esta manera y así no estaría limitado a solo 3 números.

Código Java:
Ver original
  1. String text = "palabra12345";
  2.  
  3. Pattern pattern = Pattern.compile("\\d+$");
  4. Matcher matcher = pattern.matcher(text);
  5.  
  6. if (matcher.find()) {
  7.     text = matcher.replaceFirst("");
  8. }
  9.  
  10. System.out.println(text);

Etiquetas: cadena, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:04.