1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Retirar números de uma string - JAVA

Discussão em 'Programação' iniciada por luismca, 9 de Junho de 2009. (Respostas: 11; Visualizações: 3142)

  1. luismca

    luismca Power Member

    Boas a todos

    ando aqui às voltas com isto e não há meio de conseguir.


    O problema é o seguinte:

    Imaginemos que tenho um ficheiro HTML.
    Dentro desse ficheiro HTML quero retirar só os nºs que vão aparecendo e guardá-los numa variável qualquer.
    Nada de parses porque as posições são variáveis, logo o primeiro caracter de texto que ele apanha lança uma excepção e o programa aborta.


    Agradeço imenso a quem me conseguir ajudar.



    Cumprimentos
     
  2. Yumon

    Yumon Power Member

    Java? Podes fazer um ciclo com charAt(i);
     
  3. luismca

    luismca Power Member

    É uma ideia, vou tentar, obrigado
     
  4. AliFromCairo

    AliFromCairo Power Member

    Utiliza expressões regulares.
     
  5. IcePicK

    IcePicK Power Member

    :x2:

    Tão simples como isto: [0-9]+
     
  6. luismca

    luismca Power Member

    Podem exemplificar p.f.
     
  7. PJTuga

    PJTuga Power Member

  8. AliFromCairo

    AliFromCairo Power Member

    Algo do género:

    Código:
     Pattern p = Pattern.compile("\\d+");
     String html = "<strong>1735</strong>texto texto texto 20<p>mais texto</p>";
     Matcher m = p.matcher(html);
     while (m.find()) {
         System.out.println(m.group()); // caso pretendas saber onde começa e acaba cada [I]match[/I], podes utilizar os métodos [FONT=Courier New]start [/FONT]e [FONT=Courier New]end[/FONT], respectivamente
     }
     // Output:
     // 1735
     // 20
     
    Espero que ajude.
     
  9. luismca

    luismca Power Member

    Muito bom, obrigado, era mesmo isto.

    :007:


    Isto das expressões regulares tem muito que se lhe diga, dá mesmo muito jeito.
     
  10. IcePicK

    IcePicK Power Member

    Já agora, para números inteiros e decimais (com virgula e ponto): [0-9]+(?:\.|,[0-9]*)?
     
  11. K0mA

    K0mA Power Member

    PHP

    PHP:
    $source file_get_contents('data.html');
    preg_match_all('/[0-9]+/'$source$matches);

    foreach (
    $matches as $m) {
        echo 
    "$m ";
    }
     
  12. IcePicK

    IcePicK Power Member

    Ele queria em Java :P mas não deixa de ser útil!
     

Partilhar esta Página