Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Classe Scanner e metodo delimiter

    Salve a tutti.
    voglio estrarre da questo link: http://csmob.it/21/getLocation.asp?q=Napoli
    i due decimali.
    Il seguente codice:

    URL url1 = new URL ("http://csmob.it/21/getLocation.asp?q=Napoli");
    InputStream inStream = url1.openStream();
    Scanner in = new Scanner(inStream);
    in.useDelimiter("|");
    System.out.println("Latitudine = " + in.nextFloat() + " Longitudine = " + in.nextFloat());

    ritorna: Latitudine = 4.0 Longitudine = 0.0

    dovrebbe ritornare: Latitudine = 40.8399833 Longitudine = 14.2525421

    grazie in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: Classe Scanner e metodo delimiter

    Originariamente inviato da Ciscooo
    Salve a tutti.
    voglio estrarre da questo link: http://csmob.it/21/getLocation.asp?q=Napoli
    i due decimali.
    Il seguente codice:

    URL url1 = new URL ("http://csmob.it/21/getLocation.asp?q=Napoli");
    InputStream inStream = url1.openStream();
    Scanner in = new Scanner(inStream);
    in.useDelimiter("|");
    System.out.println("Latitudine = " + in.nextFloat() + " Longitudine = " + in.nextFloat());

    ritorna: Latitudine = 4.0 Longitudine = 0.0

    dovrebbe ritornare: Latitudine = 40.8399833 Longitudine = 14.2525421

    grazie in anticipo.
    Potresti sempre leggere i due dati come String e convertirli in float/double/BigDecimal a seconda della precisione che ti serve, no?
    EDIT: cazzata, non funziona

    RI-EDIT: ah, il pattern "|" lo prende come un OR (fra il nulla e il nulla, per altro), devi usare "\\|". Poi leggendo come String e convertendo in Float funziona, provato ora.

  3. #3
    come mai non riconosce i numeri dalla sorgente soltanto con nextFloat() ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da Ciscooo
    come mai non riconosce i numeri dalla sorgente soltanto con nextFloat() ?
    Probabilmente e' un problema di localizzazione, in alcuni paesi (Italia compresa) si usa la virgola come delimitatore fra parte intera e parte decimale, in altri il punto, e la classe Scanner e' sensibile a questa differenza.
    Prima di leggere prova ad impostare la localizzazione statunitense, che utilizza il punto:

    codice:
    scanner.setLocale(java.util.Locale.US);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.