Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Java..estrarre caratteri char da stringa...]

    Kome posso estrarre i singoli caratteri di una stringa letta da file??
    Dopo averli letti da file li devo cacciare in un array di char...ho utilizzato lo stringtokenizer...ma il token è di tipo stringa e nn si puo' infilarlo nell'array...il cast nn funzika...konoscete metodi per farlo??

    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Quando hai un oggetto di tipo String puoi usare il metodo charAt(index);

    Esempio:

    codice:
    String miaStringa = "Questa è la mia stringa";
    char carattere = miaStringa.charAt(1);
    Ora nella variabile carattere avrai il valore 'u';
    Per avere tutti i caratteri di una stringa in un array puoi usare questo pezzo di codice:

    codice:
    char [] caratteri = new char[miaStringa.length()];
    for (int i=0; i<caratteri.length; i++) {
       caratteri[i] = miaStringa.charAt(i);
    }
    A questo punto hai l'array caratteri che contiene tutti i caratteri 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

  3. #3
    Grazie...kosi' va bene...
    Mi rimane un problemino...
    l'array legge una matrice...e quindi è bidimensionale..
    a parte che devo fare due cicli for...
    ma leggendo da file nn posso sapere a priori la dimensione dell'array...
    kome posso fare??
    l'array lo creo di dimensioni [i][j]..ma nel ciclo for nn posso mettere la condizione > i.lenght..perkè nn ho la dimensione??
    sapresti aiutarmi?
    Grazie...

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Se non ho capito male, tu hai un file che contiene molte stringhe.
    Per risolvere il problema della dimensione dell'array potresti procedere in questo modo:

    scorri l'intero file per sapere quante stringhe ci sono;
    crei un array di String della dimensione calcolata;
    poi scorri questo array per sapere qual'è la dimensione della stringa più lunga;
    crei, quindi, l'array bidimensionale con un numero di righe pari al numero di stringhe e numero di colonne pari alla lunghezza della stringa massima;

    Un codice esemplificativo è questo:
    codice:
    //scorro il file e calcolo il numero di stringhe
    (qui spetta a te, non so come accedi al file)
    // n_stringhe contiene il numero di stringhe;
    
    String [] arrayStringhe = new String[n_stringhe];
    
    // Scorro di nuovo il file e salvo ogni stringa nell'apposita posizione nell'array (Suppongo un ObjectInputStream ois)
    arrayStringhe[i] = (String) ois.readLine();
    
    //Scorro l'array di stringhe e calcolo la dim max della stringa:
    int max = 0;
    int tmp = 0;
    for(int k=0; k<n_stringhe; k++) {
       tmp = arrayStringhe[k].length();
       if (tmp > max) max = tmp;
    }
    
    //Creo l'array di char bidimensionale
    char arrayFinale = new char[n_stringhe][max];
    Per il secondo problema, questo dovrebbe fare al caso tuo: arrayFinale.length ti restituisce il numero di righe, mentre arrayFinale[i].length ti restituisce il numero di caratteri dell'iesima riga (che comunque, in questo caso è max)


    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 floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    oppure in questo modo
    Vector righe = new Vector();
    while (letto file) {
    String riga = input.readLine();
    char[] caratteri = riga.toCharArray();
    righe.addElement(caratteri);
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.