Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    Memorizzare solo i caratteri di una stringa

    Salve a tutti,
    ho un programma che legge una stringa da input e memorizza ogni singolo carattere in un indice di array.
    Il problema è che, se una stringa è composta da spazi, si generano degli errori sia per le operazioni che vado a fare, sia per la lunghezza della stringa stessa.
    In pratica vorrei qualcosa che, se scritto: "ciao ciao mondo"
    mi stampi "ciaociaomondo" con lunghezza array= lunghezza di "ciaociaomondo".

    Ho provato ad utilizzare metodi come
    codice:
    String[] temp = s.split(" ");
    ma ho notato che mi memorizza ogni parola in un indice e non ogni carattere in ogni indice.
    Avreste qualche idea o qualche consiglio?

    Ovviamente dovre rendere il tutto efficiente, in termini di tempo.

    Grazie.
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Memorizzare solo i caratteri di una stringa

    Originariamente inviato da the-bit
    ho un programma che legge una stringa da input e memorizza ogni singolo carattere in un indice di array.
    Il problema è che, se una stringa è composta da spazi, si generano degli errori sia per le operazioni che vado a fare, sia per la lunghezza della stringa stessa.
    In pratica vorrei qualcosa che, se scritto: "ciao ciao mondo"
    mi stampi "ciaociaomondo" con lunghezza array= lunghezza di "ciaociaomondo".

    Ho provato ad utilizzare metodi come
    codice:
    String[] temp = s.split(" ");
    ma ho notato che mi memorizza ogni parola in un indice e non ogni carattere in ogni indice.
    Avreste qualche idea o qualche consiglio?
    Se alla fin fine devi avere i singoli char .... allora scansiona la stringa carattere per carattere (che è quello che immagino farai) e "salta" gli spazi!!

    Se invece vuoi eliminare gli spazi "a monte" si può anche fare.

    str = str.replaceAll("\\s+", "");

    Qualunque sequenza di "whitespace" viene eliminata.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    Re: Re: Memorizzare solo i caratteri di una stringa

    Originariamente inviato da andbin
    Se alla fin fine devi avere i singoli char .... allora scansiona la stringa carattere per carattere (che è quello che immagino farai) e "salta" gli spazi!!
    Infatti è quello che ho fatto.
    Ma se, ad esempio, scrivo: "ciao a tutti"
    e nel codice scrivo:
    codice:
    int lunghezza = mia_stringa.length()
    allora poi avrò un array più grande di quel che occorre a me, visto che lo inizializzerò nel seguente modo:
    codice:
    char[] myArr = new char[lunghezza];
    Quindi, avrò dei "buchi" in certi indici dell'array.

    Originariamente inviato da andbin
    Se invece vuoi eliminare gli spazi "a monte" si può anche fare.

    str = str.replaceAll("\\s+", "");

    Qualunque sequenza di "whitespace" viene eliminata.
    E in questo modo ci sarà differenza tra str.length() prima di
    codice:
    str = str.replaceAll("\\s+", "");
    e dopo
    ?


    EDIT : aggiungo che col metodo str.replaceAll("\\s+", "") sembra funzionare... faccio alcune prove e ti faccio sapere. Forse è proprio quello che fa al caso mio.
    "To iterate is human, to recurse, divine." (R.(Heller))

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.