Estoy escribiendo un programa donde el usuario ingresa una Cadena en el siguiente formato:
"What is the square of 10?"
- Necesito verificar que haya un número en la Cadena
- y luego extraiga solo el número.
- Si uso
.contains("\\d+")
o.contains("[0-9]+")
, el programa no puede encontrar un número en la cadena, sin importar cuál sea la entrada, pero.matches("\\d+")
solo funcionará cuando solo haya números.
¿Qué puedo usar como solución para buscar y extraer?
Respuestas:
prueba esto
fuente
Si desea extraer el primer número de la cadena de entrada, puede hacerlo:
Ejemplos:
fuente
Creo que es más rápido que regex.
fuente
s=s.replaceAll("[*a-zA-Z]", "")
reemplaza todos los alfabetoss=s.replaceAll("[*0-9]", "")
reemplaza todos los númerossi lo hace por encima de dos reemplazos, obtendrá todas las cadenas con caracteres especiales
Si desea extraer solo enteros de un
String s=s.replaceAll("[^0-9]", "")
Si desea extraer solo alfabetos de un
String s=s.replaceAll("[^a-zA-Z]", "")
Feliz codificación :)
fuente
No pude encontrar un solo patrón correcto. Siga la guía a continuación para obtener una solución pequeña y dulce.
fuente
El siguiente código es suficiente para "Comprobar si una cadena contiene números en Java"
fuente
fuente
Prueba el siguiente patrón:
fuente
"please"
esto fallará. Además, en el ejemplo de OP, hay un "?" para dar cuenta."10"
muestra.La solución con la que fui se ve así:
Estoy seguro de que no es una solución perfecta, pero se adapta a mis necesidades. Gracias a todos por la ayuda. :)
fuente
Puedes probar esto
fuente
Como no solo desea buscar un número, sino también extraerlo, debe escribir una pequeña función que lo haga por usted. Vaya letra por letra hasta que encuentre un dígito. Ah, acabo de encontrar el código necesario para ti en stackoverflow: encuentra entero en cadena . Mira la respuesta aceptada.
fuente
fuente
.matches(".*\\d+.*")
sólo funciona para los números, pero no otros símbolos como el//
o*
etc.fuente
ASCII está al comienzo de UNICODE, por lo que puede hacer algo como esto:
Estoy seguro de que puedes averiguar los otros valores ...
fuente