Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1

    Array con dimensione modificabile e controllo di una cella vuota in un array di tipo char

    Salve, volevo solo dire che ho perso qualche oretta perchè ogni volta che scrivevo il testo passava un tot di tempo e inserendo la discussione mi faceva rifare login, login che alla fine non immetteva la discussione e ho dovuto di nuovo riscriverla, quindi se magari risolvete per non creare disagio ad altri utenti che scrivendo cose lunghe non riescono a postarle.
    Detto questo problema, parlo del mio dubbio. Volevo creare un metodo void che riceve un array di caratteri e ne riscrive uno nuovo stampando a schermo il carattere più frequente nelle celle dell'array ricevuto e quante volte questo carattere è stato trovato, il tutto senza importare librerie.
    Per far ciò ho due metodi di procedura: creo un array con dimensione dinamica che man mano viene riempito dai valori dell'array ricevuto e quindi di dimensione incerta. Ma mi dà errore in quanto l'array va inizializzato in partenza.
    Oppure do al nuovo array la stessa dimensione dell'array di partenza e immetto i valori una singola volta confrontatoli e verificando con 'if()' che il valore della cella in cui posso immettere un carattere sia 'null' quindi vuoto. Come potrei fare in questo caso?
    Es.
    for(int k=0; k<ArrayNuovo.length;k++)
    if (ArrayNuovo[k]=='null') ... ... ... ...

    Questa istruzione Java non l'accetta.
    Non ho particolari necessità di creare questo metodo, ma mi sono domandato se riuscissi a farlo e mi sono messo alla prova. Grazie per eventuali risposte.
    Ultima modifica di Pierfrank; 23-06-2015 a 20:14

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    In che senso senza importare nessuno librerie...?
    Utilizza nomi fully qualified e utilizza una bella java.util.HashMap<Character, Integer>.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    In che senso senza importare nessuno librerie...?
    Utilizza nomi fully qualified e utilizza una bella java.util.HashMap<Character, Integer>.
    Nel senso senza fare nessun import java.util. ecc ecc appunto.
    Per il secondo quesito ho trovato risposta. Per verificare se una cella di un array di char è vuota bisogna usare '\0' , quindi per verificare nel mio caso, non bisogna utilizzare 'null' ma:
    if(ArrayNuovo[k]=='\0')
    ... ... ...
    Ora l'unica cosa è sapere se si può creare una array di dimensione ingrandibile,o meglio con l'intromissione di caratteri che man mano ad ogni ciclo del 'for' aggiungono celle ad un array non inizializzato.

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Ma non ti serve fare un import :O
    Ti basta usare nomi fully qualified.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Ma non ti serve fare un import :O
    Ti basta usare nomi fully qualified.
    scusa potresti essere più preciso su i nomi fully qualified?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Pierfrank Visualizza il messaggio
    Nel senso senza fare nessun import java.util. ecc ecc appunto.

    scusa potresti essere più preciso su i nomi fully qualified?
    Generalmente si fa:
    codice:
    import java.util.HashMap;
    
    ...
        HashMap<Character,Integer> mappa = new HashMap<Character,Integer>();

    Oppure senza import:

    codice:
    java.util.HashMap<Character,Integer> mappa = new java.util.HashMap<Character,Integer>();

    Insomma si usa il nome completamente qualificato ovunque.


    Quote Originariamente inviata da Pierfrank Visualizza il messaggio
    Per il secondo quesito ho trovato risposta. Per verificare se una cella di un array di char è vuota bisogna usare '\0'
    Questo è il carattere nullo, con valore 0.

    Fare:
    char c = 0;
    oppure
    char c = '\0';

    è esattamente la stessa cosa.

    Quote Originariamente inviata da Pierfrank Visualizza il messaggio
    Ora l'unica cosa è sapere se si può creare una array di dimensione ingrandibile
    Gli array NON sono espandibili. Una volta istanziato un array, la sua dimensione non può cambiare. Quello che si può fare è creare un nuovo array di dimensione maggiorata e ricopiare gli elementi dal vecchio array al nuovo e poi "buttare" via il reference all'array vecchio.
    Questo è infatti quello che succede dentro collezioni come ArrayList/Vector, che internamente usano un array ma la collezione in sé è espandibile.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.