Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72

    [java]sostituzione caratteri

    salve... devo analizzare una stringa immessa da tastiera, dopo di che far chiedere al programma due caratteri sempre da tastiera e cambiare tutti quelli della stringa uguali al primo con il secondo.
    In realtà ho due problemi... Intanto il primo è che non so far acquisire un solo carattere da tastiera (anche se ho risolto per metà acquisendo una stringa intera e lavorando solo col primo carattere)
    Il secondo è che ho cercato un mucchio ma non ho trovato un metodo per scambiare i due caratteri, visto che
    codice:
    frase1.charAt(posizione) = carattere_di_scambio;
    non va

    :master:
    " Abbiamo due orecchie ed una sola bocca, proprio perché dobbiamo ascoltare di più e parlare di meno "

  2. #2

    Re: [java]sostituzione caratteri

    Originariamente inviato da zenone
    salve... devo analizzare una stringa immessa da tastiera, dopo di che far chiedere al programma due caratteri sempre da tastiera e cambiare tutti quelli della stringa uguali al primo con il secondo.
    In realtà ho due problemi... Intanto il primo è che non so far acquisire un solo carattere da tastiera (anche se ho risolto per metà acquisendo una stringa intera e lavorando solo col primo carattere)
    Il secondo è che ho cercato un mucchio ma non ho trovato un metodo per scambiare i due caratteri, visto che
    codice:
    frase1.charAt(posizione) = carattere_di_scambio;
    non va

    :master:
    1)
    x acquisire un solo carattere xchè non dichiari la variabile di tipo char?

    2)
    per sostituire un carattere devi usare :

    frase1.setCharAt( posizione, 'nuovo carattere' );
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    grazie ma dichiarando una variabile di tipo char mi da errore... l'istruzione per acquisire un carattere è diversa da quella per acquisire una stringa credo... io per la stringa uso "stringa.readLine()" va bene anche con char? :master:
    " Abbiamo due orecchie ed una sola bocca, proprio perché dobbiamo ascoltare di più e parlare di meno "

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    la setCharAt non me la trova... devo fare 'import qualcosa'?
    " Abbiamo due orecchie ed una sola bocca, proprio perché dobbiamo ascoltare di più e parlare di meno "

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Il metodo setCharAt() non esiste, per questo non te lo trova. Ho controllato la documentazione e tale metodo non esiste né nella JDK 1.4.2, né nella più recente 1.5.0.

    Come procedere, quindi, per il tuo problema: ci sono essenzialmente 2 vie. Una, la più rapida, consiste nell'utilizzare il metodo replace()
    codice:
    public String replace(char oldChar, char newChar)
    Questo metodo sostituisce tutte le occorrenze del carattere oldChar con il carattere newChar.
    Esempio di utilizzo:
    codice:
    String miaStringa = "Questa è la stringa originale";
    System.out.println(miaStringa);
    miaStringa = miaStringa.replace('a', 'o');
    System.out.println(miaStringa);
    con il relativo output:
    codice:
    Questa è la stringa originale
    Questo è lo stringo originole
    Altro metodo è quello di utilizzare gli array di caratteri: ti costruisci l'array relativo alla stringa e, con un ciclo, vai a sostituire, carattere per carattere, le occorrenze vecchie con quelle nuove. Poi ricostruisci la stringa. Esempio:
    codice:
    String miaStringa = "Questa è la stringa originale";
    System.out.println(miaStringa);
    char [] mioArray = miaStringa.toCharArray();
    for (int i=0; i<mioArray.length; i++)
       if (mioArray[i] == 'a') mioArray[i] = 'o';
    miaStringa = new String(mioArray);
    System.out.println(miaStringa);
    E l'output è identico a quello precedente.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Originariamente inviato da LeleFT
    Il metodo setCharAt() non esiste, per questo non te lo trova. Ho controllato la documentazione e tale metodo non esiste né nella JDK 1.4.2, né nella più recente 1.5.0.
    Il metodo setCharAt è fornito dalla classe StringBuffer

    esempio :

    ...
    StringBuffer ciao = new StringBuffer ("abcd");
    ciao.setCharAt(0,'e');
    ...


    ciao da "abcd" diventa "ebcd"
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    grazie a tutti, mi siete stati veramente utili...
    " Abbiamo due orecchie ed una sola bocca, proprio perché dobbiamo ascoltare di più e parlare di meno "

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Originariamente inviato da JunkyFunki
    Il metodo setCharAt è fornito dalla classe StringBuffer

    esempio :

    ...
    StringBuffer ciao = new StringBuffer ("abcd");
    ciao.setCharAt(0,'e');
    ...


    ciao da "abcd" diventa "ebcd"
    Effettivamente... io avevo controllato la classe String (che è quella per cui aveva chiesto consigli).
    Non ho mai usato tale classe, quindi non mi è passato per la testa di controllarla. (In effetti, non conosco alcuna classe che la utilizzi).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    72
    Grazie a tutti... ho risolto il problema ed ho imparato un paio di cosette che mi faranno comodo in futuro!!!
    " Abbiamo due orecchie ed una sola bocca, proprio perché dobbiamo ascoltare di più e parlare di meno "

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.