Estou escrevendo um programa em que o usuário insere uma String no seguinte formato:
"What is the square of 10?"
- Preciso verificar se há um número na string
- e extraia apenas o número.
- Se eu usar
.contains("\\d+")
ou.contains("[0-9]+")
, o programa não conseguirá encontrar um número na String, não importa qual seja a entrada, mas.matches("\\d+")
só funcionará quando houver apenas números.
O que posso usar como solução para localizar e extrair?
Respostas:
tente isso
fonte
Se você quiser extrair o primeiro número da string de entrada, você pode fazer-
Exemplos:
fonte
Eu acho que é mais rápido do que regex.
fonte
s=s.replaceAll("[*a-zA-Z]", "")
substitui todos os alfabetoss=s.replaceAll("[*0-9]", "")
substitui todos os númerosse você fizer mais de duas substituições irá obter todas as cadeias de caracteres especiais
Se você deseja extrair apenas inteiros de um
String s=s.replaceAll("[^0-9]", "")
Se você deseja extrair apenas alfabetos de um
String s=s.replaceAll("[^a-zA-Z]", "")
Boa codificação :)
fonte
Não consegui encontrar um único padrão correto. Siga o guia abaixo para uma solução pequena e doce.
fonte
O código abaixo é suficiente para "Verificar se uma String contém números em Java"
fonte
fonte
Experimente o seguinte padrão:
fonte
"please"
isso irá falhar. Além disso, no exemplo do OP, há um "?" para explicar."10"
por exemplo.A solução que usei é a seguinte:
Tenho certeza de que não é uma solução perfeita, mas atendeu às minhas necessidades. Obrigado a todos pela ajuda. :)
fonte
Você pode tentar isso
fonte
Como você não quer apenas procurar um número, mas também extraí-lo, você deve escrever uma pequena função fazendo isso para você. Vá letra por letra até encontrar um dígito. Ah, acabei de encontrar o código necessário para você no stackoverflow: find integer in string . Veja a resposta aceita.
fonte
fonte
.matches(".*\\d+.*")
funciona apenas para números, mas não para outros símbolos como//
ou*
etc.fonte
ASCII está no início do UNICODE, então você pode fazer algo assim:
Tenho certeza que você pode descobrir os outros valores ...
fonte