Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    Inverti prima ed ultima lettera di una stringa: come?

    Salve a tutti!

    Avrei nuovamente bisogno di un aiutino: ovvero, qual è il metodo che devo utilizzare per invertire la prima e l'ultima lettera di una Stringa? Ad esempio: se avessi la stringa: "Buongiorno", in che modo potrei ottenere "OuongiornB"?
    Grazie in anticipo!
    I'm going under (going under)
    Drowning in you (drowning in you)
    I'm falling forever (falling forever)
    I've got to break through
    I'm going under

    { GOING UNDER - Evanescence }

  2. #2
    Il metodo charAt (indice) ti restituisce un singolo carattere, mentre substring(inizio, fine) ti da la sottostringa che va da inizio a fine.
    In Java, a rigore, non puoi modificare una stringa. Devi crearne una nuova unendo i pezzi di quella vecchia.

  3. #3
    In che linguaggio di programmazione?
    in c:
    codice:
    char Stringa[20];
    char tmp;
    int dim; //Che andra inizializzato con la dimensione di
    Stringa
    
    tmp = Stringa[0];
    Stringa[0]=Stringa[dim-1];
    Stringa[dim-1] = tmp;

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da dekdek
    In Java, a rigore, non puoi modificare una stringa. Devi crearne una nuova unendo i pezzi di quella vecchia.
    A meno che non utilizzi la stessa stringa come destinazione delle operazioni:
    codice:
    String s = "OuongiornB";
    s = "" + s.charAt(s.length-1) + s.substring(1, s.length-2) + s.charAt(0);
    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

  5. #5
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    manca il linguaggio: ricorda che va sempre indicato nel titolo
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  6. #6
    Visto che ognuno dice la sua
    questa è la versione python:
    codice:
    str  = "ciao"
    str = str[-1:] + str[1:-1] + str[:1]

  7. #7
    Avete ragione, guys ^^; Chiedo perdono, purtroppo ho dimenticato di farlo... Il linguaggio a cui mi riferivo è JAVA.
    Dunque... in effetti come mi suggeriva il fidato dekdek avevo provato ad usare il metodo "deleteCharAt" della classe StringBuffer ma.. credo di non aver capito esatamente come si usi perché non riesco a tirari fuori il risultato che volevo :\
    Ho provato anche con il metodo "replace" ma mi rimpiazzava soltanto la prima lettera e stop (non so in cosa ho sbagliato...)

    Il codice che ho scritto è questo:

    import javax.swing.JOptionPane;

    public class MioNome2
    {
    public static void main(String[] args)
    {
    String nome = JOptionPane.showInputDialog("INSERISCI IL TUO NOME");
    StringBuffer risultato = new StringBuffer(nome);
    String primaL;
    primaL = primaL.substring(0,1);
    primaLT = new String(primaL);
    ultimaL = ultimaL.substring(7,8);
    ultimaLT = new String(ultimaL);
    StringBuffer parolaFinale;
    parolaFinale.deleteCharAt(1);
    parolaFinale.deleteCharAt(8);
    System.out.println(risultato);
    System.out.println(primaL + parolaFinale + ultimaL);


    }
    }
    Sicuramente sbaglio (a parte che lo stavo riscrivendo ma non l'ho ricorretto eh.. ) ma DOVE?
    I'm going under (going under)
    Drowning in you (drowning in you)
    I'm falling forever (falling forever)
    I've got to break through
    I'm going under

    { GOING UNDER - Evanescence }

  8. #8
    A parte che dicevo di usare il metodo charAt di String...

    codice:
    primaL = primaL.substring(0,1);
    primaLT = new String(primaL);
    ultimaL = ultimaL.substring(7,8);
    ultimaLT = new String(ultimaL);
    Cosa sono primaLT ed ultimaLT, ma soprattutto a che servono?

    Inoltre, nota che hai usato il metodo substring sulle variabili primaL e ultimaL che invece dovrebbero contenere il risultato.

    E infine, hai usato (7,8)... e se il nome fosse stato piu' lungo o piu' corto?

    Ultima cosa... Se proprio vuoi usare StringBuffer:

    codice:
            parolaFinale.deleteCharAt(1);
            parolaFinale.deleteCharAt(8);
    Il carattere in posizione '1' e' il secondo. Per eliminare il primo devi usare deleteCharAt(0).
    Quando cancelli il secondo carattere, hai calcolato che la stringa ora e' piu' corta di un carattere?

    Buon lavoro.

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Aggiungo... ti sei ricordato di salvare prima da qualche parte i caratteri che intendi eliminare? Altrimenti li elimini e non li recuperi più.

    Poi, come ti è già stato detto da dekdek, evita di utilizzare delle costanti per riferirti alle posizioni dei caratteri (tranne per il primo, ovviamente), ma utilizza i metodi messi a disposizione dalla classe StringBuffer per ottenere la lunghezza della stringa.


    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

  10. #10
    Rispondendo a dekdek:
    pensavo intendessi il metodo "deleteCharAt" della classe StringBuffer, non pensavo esistesse qualcosa di simile anche per la clasee String O.O (non ci avevo nemmeno guardato). Ma StringBuffer non contiene metodi per alterare le stringhe?
    Per quanto riguarda il metodo substring: è vero, hai ragione ho sbagliato. L'intenzione era quella di memorizzare il risultato dell'applicazione del metodo in una variabile (per conservarne il risultato) ma ho sbagliato per l'appunto ... Se avessi voluto conservarne il valore, come avrei dovuto fare? Voglio dire: substring serve per "catturare" la lettera di una stringa, giusto? Quindi avrei potuto memorizzarne i risultati in una variabile in modo tale poi da poterle riutilizzare?
    Alla domanda: "E infine, hai usato (7,8)... e se il nome fosse stato piu' lungo o piu' corto?" ti rispondo che me lero chiesto anch'io ma non sapevo come risolvere l'enigma. Voglio dire: se in effetti io non conoscessi il numero di caratteri in una stringa (come così poi dovrebbe essere) come dovrei fare? Che metodo applicare? E soprattutto.. in che modo?
    "Quando cancelli il secondo carattere, hai calcolato che la stringa ora e' piu' corta di un carattere?" .... ah. O.O No. Non ci avevo pensato... Quindi non fa più riferimento al... valore iniziale? Cancella direttamente, questo metodo?


    Per LeteFT:
    "Aggiungo... ti sei ricordato di salvare prima da qualche parte i caratteri che intendi eliminare? Altrimenti li elimini e non li recuperi più." Beh... in primis, sono una LEI In secondis (???) in effetti no, proprio perché non immaginavo che il metodo deleteCharAT eliminasse tutto d'un colpo le lettere (abbiate pietà, sono agli inizi! )
    "...utilizza i metodi messi a disposizione dalla classe StringBuffer per ottenere la lunghezza della stringa." Uhm... in che senso, LeteFT? ?_? Di che metodo parli di preciso?

    Ad entrambi, grazie intanto per l'aiuto!
    I'm going under (going under)
    Drowning in you (drowning in you)
    I'm falling forever (falling forever)
    I've got to break through
    I'm going under

    { GOING UNDER - Evanescence }

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.