Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25
  1. #11
    Il metodo per ricevere la lunghezza di una stringa e' length() e lo stesso vale per StringBuffer.
    Per dubbi di questo tipo, gli ambienti di sviluppo di solito hanno qualche funzione per mostrarti tutti i metodi definiti per una classe.


    Ma StringBuffer non contiene metodi per alterare le stringhe?
    Si', gli StringBuffer possono essere modificati, le String invece no. Comunque e' un dettaglio...

    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?
    Il problema e' che hai invocato il metodo sull'oggetto sbagliato:

    codice:
    primaL = primaL.substring(0,1);
    significa, prendi il primo carattere di primaL (primaL.substring(0,1)) e memorizzalo in primaL, che non e' cio' che vuoi fare.
    Tu hai bisogno di memorizzare in primaL (e fin qui ci siamo) il primo carattere di nome, quindi:

    codice:
    primaL = nome.substring(0,1);
    o piu' semplicemente:

    codice:
    primaL = primaL.charAt(0);
    "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?
    Se nome="Salvatore" e voglio ottenere "alvator", mi verrebbe spontaneo di cancellare il primo ed il nono carattere. Sembra giusto, no?
    Quando vado a eseguire queste due operazioni in sequenza pero' succede questo.

    1) Cancello il primo carattere da "Salvatore" -> ottengo "alvatore"

    2) Cancello il nono carattere da "alvatore" -> sono solo otto caratteri!!!

    Restante il fatto che non hai bisogno di complicarti in questo modo la vita (vedi la semplice riga postata da Leleft dopo la mia prima risposta che risolve il problema), una semplice soluzione sarebbe cominciare dalla fine: cancella prima il nono carattere, poi il primo.

    Miii, come sono verboso certe volte...

    Ciao.

  2. #12
    Dopo un'intensa settimana (gosh...) eccomi di nuovo qui, ahivoi ^^;
    Avrei una domanda in merito ai metodi length e CharAt della classe String... perché ho provato a leggere nella guida (come mi aveva suggerito dekdek) in che modo funzionassero... ma non ci ho mica capito granché ;_; Maledetto inglese...

    Cito testualmente:


    length

    public int length()

    Returns the length of this string. The length is equal to the number of 16-bit Unicode characters in the string.

    Specified by:
    length in interface CharSequence

    Returns:
    the length of the sequence of characters represented by this object.

    --------------------------------------------------------------------------------

    charAt

    public char charAt(int index)

    Returns the character at the specified index. An index ranges from 0 to length() - 1. The first character of the sequence is at index 0, the next at index 1, and so on, as for array indexing.

    Specified by:
    charAt in interface CharSequence

    Parameters:
    index - the index of the character.

    Returns:
    the character at the specified index of this string. The first character is at index 0.

    Throws:
    IndexOutOfBoundsException - if the index argument is negative or not less than the length of this string.
    Potreste gentilissimamente spiegarmi esattamente come funziona? :\
    (scusate il ritardo della risposta comunque, ma non ho avuto modo di mettermi prima sul programma )
    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 }

  3. #13
    Per quanto riguarda length():

    codice:
    public int length()
    come vedi e' un metodo pubblico (lo puoi richiamare tranquillamente) che restituisce un intero (la lunghezza della stringa) e non prende nessun parametro.
    Un esempio di codice:

    codice:
    String stringa = "PippoPlutoPaperino";
    int lunghezza = stringa.length();
    System.out.println("La stringa " + stringa + " e' lunga " + lunghezza);
    dovrebbe restituire:

    La stringa PippoPlutoPaperino e' lunga 18
    L'altro qual'era? Ah...

    codice:
    public char charAt(int index)
    e' un metodo pubblico, restituisce un char (il carattere che vuoi estrarre dalla stringa) e prende un parametro intero (la posizione dell'intero che vuoi estrarre)

    Un esempio di codice:

    codice:
    String stringa = "PippoPlutoPaperino"; // Copy & Paste rulez
    char datemiUnaP = stringa.charAt(10);
    System.out.println("Il carattere estratto da " + stringa + " e' una " + datemiUnaP);
    dovrebbe restituire:

    Il carattere estratto da PippoPlutoPaperino e' una P
    Spero di essere stato esauriente.
    Ciao!
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  4. #14
    Lo sei stato moltissimo dekdek, grazie infinitamente! ^____^
    Solo un'ultima (spero) curiosità: in pratica quindi il metodo charAT si limita semplicemente a "copia-incollare" in una nuova... beh, nel caso credo in una nuova stringa, la lettera che gli viene richiesta di estrarre, giusto? Quindi a questo punto ne deduco che: per ottenere quel programma dovrei prima di tutto usare il metodo length per ottenere la lunghezza della stringa. Poi chiedere tramite il metodo charAt che da essa vengano copia-incollate altrove (in apposite variabili) la prima e l'ultima lettera... e infine? ?_? Che metodo uso per scambiarle di posto? "replace" di String? Uff, ma anche per voi all'inizio era così difficile arrivare a capire determinati meccanismi o sono soltanto io quella un po' rimba?
    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 }

  5. #15
    A rigore, charAt non crea una stringa, ma un char, cioe' un unico carattere.

    Per creare la nuova stringa con gli antipodi invertiti devi semplicemente assemblare i pezzi usando l'operatore somma:

    nuovaStringa = letteraFinale + pezzoCentrale + letteraIniziale;

    P.S. Si', all'inizio hai sempre l'impressione che ti sfugga il nocciolo della questione... Poi, in seguito, ti accorgi che era proprio cosi'!!!
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  6. #16
    Sì sì, questo è ok: nel senso che per l'assemblare le varie parti ci sono ma... Se io assemblo le varie parti appunto.. alla fine però non otterrei qualcosa del tipo non so: "o" + Buongiorno + "B" e quindi "BBuongiornoo"? O.o Voglio dire... il nome ("Buongiorno") non rimane comunque invariato?

    P.S. Si', all'inizio hai sempre l'impressione che ti sfugga il nocciolo della questione... Poi, in seguito, ti accorgi che era proprio cosi'!!!
    Ahahah, pienamente d'accordo! XD
    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 }

  7. #17
    Infatti, per parte centrale intendevo... "uongiorn"!!!
    Puoi ottenerlo col metodo substring (questo, si', produce una String) di cui, se scorri i vecchi messaggi, si era gia' parlato!
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  8. #18
    Tutto ad un tratto mi si è aperto un mondo O_O .... Avevo totalmente frainteso l'utilizzo del metodo substring!!! Allora forse posso farcela! XD D'accordo, riscrivo il programma e poi lo posto per avere una conferma -si spera- positiva
    Grazie ancora dekdek! ^__^/
    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 }

  9. #19

    Io vo' a nanna.
    Buonanotte!
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  10. #20
    Uffaaa... dove ho sbagliato...?

    import javax.swing.JOptionPane;

    public class MioNome2
    {
    public static void main(String[] args)
    {
    String nome = JOptionPane.showInputDialog("INSERISCI IL TUO NOME");
    String risultato = new String(nome);
    int lunghezza = risultato.length();
    char ultimaLettera = risultato.charAt(lunghezza);
    char primaLettera = risultato.charAt(0);
    String corpoNome = risultato.substring(1, lunghezza-1);
    System.out.println("Il tuo nome è: " + nome + ". TRANSFORM: " + primaLettera + corpoNome + ultimaLettera);



    }
    }
    Se provo a lanciare il programma mi dice testualmente:

    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
    ex out of range: 8
    at java.lang.String.charAt(Unknown Source)
    at MioNome2.main(MioNome2.java:10)
    Ovvero...?
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.