Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    2

    programma java

    ciao a tutti sono alle prime armi con il java e dovrei fare questo programma :
    Scrivere un metodo statico iterativo che, dati un array monodimensionale a di
    stringhe ed un array monodimensionale c di caratteri, restituisce un array monodimensionale
    b di stringhe tale che b[i] è la stringa ottenuta concatenando tutti i caratteri di a[i] uguali a
    c[i]. Nel caso in cui c[i] non compaia in a[i], allora b[i] è la stringa vuota.
    Esempio: dati a = {"minnie","lillo","pluto","pippo"} e c = {'i','l','r','p'}, il
    metodo restituisce l'array b = {"ii","lll","","ppp"}.
    Si assuma che gli array a e c abbiano la stessa lunghezza.


    public static String [][] es(String[]a, char[]c){
    int i,j;
    String [][] b = new String[a.length][];
    for(i = 0; i < a.length; i++){
    String []f= new String[a[i].length()];
    for(j = 0; j < a[i].length(); j++){
    if(a[i].charAt(j) == c[i]){
    f[i] = a[i].substring(j-1,j);
    b[i][j] = f[i]+b[i][j];
    }
    }
    }
    return b;
    }

    il mio problema è soprattutto quello di prendere un carattere da una stringa e metterlo dentro un'altra stringa, come posso fare??
    Grazie!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013

    Re: programma java

    Benvenuto.
    Il problema grosso che hai è che non hai letto il regolamento del forum... il codice va postato con gli appositi tag [*CODE] per mantenere un'indentazione ed una leggibilità decenti.

    Veniamo al dunque. Questo è quanto hai prodotto fin'ora:
    codice:
     public static String [][] es(String[]a, char[]c){
            int i,j;
            String [][] b = new String[a.length][];
            for(i = 0; i < a.length; i++){
                String []f= new String[a[i].length()];
                for(j = 0; j < a[i].length(); j++){
                    if(a[i].charAt(j) == c[i]){
                        f[i] = a[i].substring(j-1,j);
                        b[i][j] = f[i]+b[i][j];
                    }  
                } 
            }
         return b;
        }
    Il tuo compito per casa diceva di produrre un array monodimensionale, e già non ci siamo (il tuo metodo ritorna String[][])

    Poi, nella tua richiesta: che cosa vuol dire prendere un carattere e metterlo dentro ad un'altra stringa? Non devi fare niente di tutto ciò. Sei partito bene ciclando su l'array di String, ma ti perdi in tutto il resto andando fuori da quanto ti è stato assegnato, che fondamentalmente è concatenare un po' di caratteri man mano che vengono trovati.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    l'esercizio parla di array monodimensionale b, nel codice tu definisci b un arraybidimensionale e il metodo stesso torna un array bidimensionale...

  4. #4

    Re: programma java

    Originariamente inviato da scerpa
    il mio problema è soprattutto quello di prendere un carattere da una stringa e metterlo dentro un'altra stringa, come posso fare??
    Grazie!!
    codice:
    String stringa = "CIAO";
    int posizioneCar = 2; // Voglio recuperare la lettera A
    
    System.out.println(stringa.substring(posizioneCar, posizioneCar+1));
    output: A

    lolide
    Java Programmer

    Informati

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    2

    programma java

    si scusate ho definito male l'array b. così potrebbe andare bene?

    codice:
         public static String [] es2(String[]a, char[]c){
            int i,j;
            String [] b = new String[a.length];
            for(i = 0; i < a.length; i++){
                b[i]="";
                for(j = 0; j < a[i].length(); j++){
                    if(a[i].charAt(j) == c[i]){
                        b[i] = b[i]+c[i];
                    }  
                } 
            }
         return b;

  6. #6

    Re: programma java

    Originariamente inviato da scerpa
    si scusate ho definito male l'array b. così potrebbe andare bene?
    Io ti direi: non facciamo i compiti a casa.

    Quindi ti direi:
    ti da errori ?
    se lo provi funziona?
    se ti da errori, che errori ti da?
    se ti da eccezzione, posta lo stacktrace.

    lolide
    Java Programmer

    Informati

  7. #7

    Re: programma java

    Originariamente inviato da scerpa
    si scusate ho definito male l'array b. così potrebbe andare bene?

    codice:
         public static String [] es2(String[]a, char[]c){
            int i,j;
            String [] b = new String[a.length];
            for(i = 0; i < a.length; i++){
                b[i]="";
                for(j = 0; j < a[i].length(); j++){
                    if(a[i].charAt(j) == c[i]){
                        b[i] = b[i]+c[i];
                    }  
                } 
            }
         return b;
    EDIT: potresti fare c.length, ma è comunque corretto. Non vedo errori.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157

    Re: Re: programma java

    Originariamente inviato da lolide
    codice:
    String stringa = "CIAO";
    int posizioneCar = 2; // Voglio recuperare la lettera A
    
    System.out.println(stringa.substring(posizioneCar, posizioneCar+1));
    output: A

    perché sparare su una mosca con un cannone?


    codice:
    String stringa = "CIAO";
    int posizioneCar = 2; // Voglio recuperare la lettera A
    String out = String.valueOf(stringa.charAt(posizioneCar));
    System.out.println(out);
    //oppure 
    out = "" +  stringa.charAt(posizioneCar);
    System.out.println(out);
    Se gli interessa un "carattere" charAt è quello che fa al caso suo.
    Se proprio vogliamo parlare di ottimizzazioni (inutili per un neofita) dovrebbe mettere l'output in uno stringbuffer per evitare di istanziare una nuova stringa ad ogni append

  9. #9

    Re: Re: Re: programma java

    Originariamente inviato da valia
    perché sparare su una mosca con un cannone?


    codice:
    String stringa = "CIAO";
    int posizioneCar = 2; // Voglio recuperare la lettera A
    String out = String.valueOf(stringa.charAt(posizioneCar));
    System.out.println(out);
    //oppure 
    out = "" +  stringa.charAt(posizioneCar);
    System.out.println(out);
    Se gli interessa un "carattere" charAt è quello che fa al caso suo.
    Se proprio vogliamo parlare di ottimizzazioni (inutili per un neofita) dovrebbe mettere l'output in uno stringbuffer per evitare di istanziare una nuova stringa ad ogni append
    Giusto
    Ottimizzare è sempre cosa buona
    lolide
    Java Programmer

    Informati

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.