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

    [JAVA] - metodo toString

    Ciao a tutti!! Ritorno con un quesito che mi sta facendo impazzire, non tanto per la difficoltà, quanto per il fatto che non riesco a capire dove sbaglio!!
    Premetto che sto iniziando a studiare la classe ArrayList.
    Devo aggiungere a una classe già creata il metodo toString, che mi restituisce una stringa in questo modo:
    Purse[Quarters, Dimes, Nickels]

    Ecco qui cosa ho fatto:
    codice:
    public class Purse 
    {
    	public Purse()
    	{
    		coins = new ArrayList<String>();
    	}
    
    	
    	public void addCoin(String coinName)
    	{
    		coins.add(coinName);
    	}
    
    	public String toString()
    	{
    		String s ="Purse[";
    		for(String x: coins)
    			s.concat(x + ", ");
    		s.concat("]");
    		return s;
    	}
    
    	private ArrayList<String> coins;
    }
    Per testarla ho usato una classe semplice
    codice:
    public class PurseTester 
    {
    	public static void main(String[] args)
    	{
    		Purse purse = new Purse();
    		
    		purse.addCoin("Nickels");
    		purse.addCoin("Dimes");
    		purse.addCoin("Quarters");
    		
    		System.out.println(purse.getSize());
    		
    		System.out.println(purse.toString());
    	}
    }
    Ecco quello che mi stampa a video
    codice:
    3
    Purse[
    Non capisco perchè mi esce solo la prima parentesi quadra e non aggiunge le altre stringe.
    Ho provato in ogni modo possibile: sostituendo il ciclo for generalizzato con un for normale; creando String s come campo di istanza e poi aggiungendo man mano le varie stringe.
    Il risultato però non cambia.

    Spero che qualcuno di voi possa illuminarmi per bene sul perchè!!

    Grazie mille a tutti!

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    s=s.concat(x + ", ");
    e ovviamente anche
    s=s.concat("]");

  3. #3

    Re: [JAVA] - metodo toString

    Originariamente inviato da tigerjack89
    Purse[Quarters, Dimes, Nickels]

    Ecco qui cosa ho fatto:
    codice:
    public class Purse 
    {
    	public Purse()
    	{
    		coins = new ArrayList<String>();
    	}
    
    	
    	public void addCoin(String coinName)
    	{
    		coins.add(coinName);
    	}
    
    	public String toString()
    	{
    		String s ="Purse[";
    		for(String x: coins)
    			s.concat(x + ", ");
    		s.concat("]");
    		return s;
    	}
    
    	private ArrayList<String> coins;
    }
    Sei sicuro che la classe Purse vada definita in questo modo?

  4. #4

    Re: [JAVA] - metodo toString

    Originariamente inviato da tigerjack89
    Ciao a tutti!! Ritorno con un quesito che mi sta facendo impazzire, non tanto per la difficoltà, quanto per il fatto che non riesco a capire dove sbaglio!!
    Premetto che sto iniziando a studiare la classe ArrayList.
    Devo aggiungere a una classe già creata il metodo toString, che mi restituisce una stringa in questo modo:
    Purse[Quarters, Dimes, Nickels]

    Ecco qui cosa ho fatto:
    codice:
    public class Purse 
    {
    	public Purse()
    	{
    		coins = new ArrayList<String>();
    	}
    
    	
    	public void addCoin(String coinName)
    	{
    		coins.add(coinName);
    	}
    
    	public String toString()
    	{
    		String s ="Purse[";
    		for(String x: coins)
    			s.concat(x + ", ");
    		s.concat("]");
    		return s;
    	}
    
    	private ArrayList<String> coins;
    }
    Per testarla ho usato una classe semplice
    codice:
    public class PurseTester 
    {
    	public static void main(String[] args)
    	{
    		Purse purse = new Purse();
    		
    		purse.addCoin("Nickels");
    		purse.addCoin("Dimes");
    		purse.addCoin("Quarters");
    		
    		System.out.println(purse.getSize());
    		
    		System.out.println(purse.toString());
    	}
    }
    Ecco quello che mi stampa a video
    codice:
    3
    Purse[
    Non capisco perchè mi esce solo la prima parentesi quadra e non aggiunge le altre stringe.
    Ho provato in ogni modo possibile: sostituendo il ciclo for generalizzato con un for normale; creando String s come campo di istanza e poi aggiungendo man mano le varie stringe.
    Il risultato però non cambia.

    Spero che qualcuno di voi possa illuminarmi per bene sul perchè!!

    Grazie mille a tutti!
    Ciao Tigerjack,
    L'errore è nel seguente codice :
    codice:
    s.concat(x + ", ");
    s.concat("]");
    in quanto il metodo concat restituisce la stringa concatenata con la stringa passata come parametro quindi la soluzione è questa:
    codice:
    s = s.concat(x + ", ");
    s = s.concat("]");
    Ciao

  5. #5
    caz che idiota che sono!!
    mi stavo scervellando su un errore stupidissimo!!mi vergogno di me!!

    Scusate a tutti raga, troppe ora di studio di fila e non capisco più nulla!!

    Grazie mille comunque a tutti per le risposte immediate!!!
    A presto!!
    ciauzzz

  6. #6
    Originariamente inviato da tigerjack89
    caz che idiota che sono!!
    mi stavo scervellando su un errore stupidissimo!!mi vergogno di me!!

    Scusate a tutti raga, troppe ora di studio di fila e non capisco più nulla!!

    Grazie mille comunque a tutti per le risposte immediate!!!
    A presto!!
    ciauzzz
    Non ti preoccupare capita a tutti.

  7. #7
    Originariamente inviato da tigerjack89
    Scusate a tutti raga, troppe ora di studio di fila e non capisco più nulla!!
    E' normale . Quando sarai più fresco rivediti anche l'implementazione della classe.

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.