Recuperare il prima valore numerico da stringa

di Anonimizzato10125 il
10 risposte
Salve ragazzi, sono simone...sono alle prime armi con Java..come si fa da inserire una stringa di numeri e lettere e successivamente acquisire il primo valore numerico???? Grazie in anticipo..!!!

10 Risposte

  • Se c'è un delimitatore "speciale" puoi usare uno StringTokenizer

    ad esempio se leggi la stringa in questo modo:
    123#stringa
    puoi leggerla così:
    StringTokenizer st=new StringTokenizer(stringaLetta,"#");
    int numero=Integer.parseInt(St.nextToken());
    ovviamente stringaLetta è la stringa in input e numero sarà 123
  • Ciao

    ti ricordo che i titoli generici come quello che avevi inserito sono assolutamente vietati dal regolamento. Ti ho modificato l'argomento con un titolo appropriato alla discussione aperta. Ricordatelo per il futuro
  • Zaknafein83 grazie dell' aiuto però non ho capito cosa vuol dire quel # che mi hai messo....

    Fozarelli scusami ma questo passaggio nel regolamento mi era sfuggito...scusate..!!!!
  • È un delimitatore...semplicemente
    123=stringa
    puoi leggerla così:
    
    StringTokenizer st=new StringTokenizer(stringaLetta,"=");
    int numero=Integer.parseInt(St.nextToken());
    123 stringa
    puoi leggerla così:
    
    StringTokenizer st=new StringTokenizer(stringaLetta," ");
    int numero=Integer.parseInt(St.nextToken());
    123"stringa
    puoi leggerla così:
    
    StringTokenizer st=new StringTokenizer(stringaLetta,"\"");//i caratteri speciali devono essere ANTECEDUTI da \
    int numero=Integer.parseInt(St.nextToken());
    ovviamente questo è un codice molto "semplicistico"
  • Tranquillo solitamente iniziamo a punire l'utente se questo è restio nel capire le cose In quel caso in ginocchio sui ceci a pregare

    Se puniamo subito un utente lo facciamo solo in casi di violazioni gravi
  • Ora sto rileggendo il primo post, forse tu intendevi una cosa diversa:

    se la stringa è:
    123casa43ancora
    if(tu vuoi leggere 123?)
    
    
    String testo="";
    boolean flag=true;
    for(int i=0; i<stringa.length && flag;++i){
       if(Character.isDigit(stringa.charAt(i)))
          testo+=stringa.charAt(i);
       else
          flag=false;
    }
    int intero=Integer.parseInt(testo);
    
  • Interessantissimo questi 2 sistemi per estrarre numeri da stringhe ti ringrazio anch'io zaknafein83.
    Io avrei semplicemente avrei estratto un a subString da una String data. StringTokenizer e' interessantissimo.
    io avrei fatto precisamente cosi, metodo terraterra:
    
    // per tutte le variabili non inizializzatte guardare testo in alto
    int i = 0;
    while( Character.isDigit( string.charAt( i ) ); // prenedo in prestito anche isDigit();
    	i++;
    int intero = 0;
    testo = string.substring( 0, i );
    intero = Integer.parseInt( testo );
    
    
    Lingyong Sun
  • Intuendo che l'esercizio potesse essere "scolastico", ho preferito usare il concetto di variabile booleana all'interno del for.

    altrimenti è sicuramente migliore la tua soluzione (per quello che discutavamo nell'altro thread per il risparmio di risorse )
  • A me piace vedere sempre nuove soluzione che siano migliori o peggiori, e anche se magari so gia che non usero mai piu', solop er il gusto di osservare qualcosa di nuovo. i tuoi metodi mi sono piaciuti molto perche' ci avrei mai pensato, e questa e' una cosa molto positiva.
    In ogni caso io discuto sempre su tutto e con tutti, anche oggi l'ho fatto a scuola in il prof. di laboratorio. Secondo me le discussioni che mettono a confronto 2 persone senza degerare in lite e' molto produttivo per la nascita e lo sviluppo di nuove idee.
  • Grazie tante zaknafein83! sei stato molto preciso e competo..!!!
Devi accedere o registrarti per scrivere nel forum
10 risposte