DaViDa
DaViDa

Reputation: 641

Getting arraylist char items returning into a string I can use to printout

I got an arraylist made containing two letters and one number. I need to display it like for example "ab1". But everytime I get a printline with some arraylist code: "pp4main.Letter@f7e6a96pp4"

This is my array list: ArrayList<Letter> letterlijst = new ArrayList<Letter>();

My code trying to display:

public Kofferslot(char letter1, char letter2, int cijfer){

    Letter letterlijst1 = new Letter();
    letterlijst1.setLetter(letter1);
    Letter letterlijst2 = new Letter();
    letterlijst1.setLetter(letter2);

    letterlijst.add(letterlijst1);
    letterlijst.add(letterlijst2);


    Cijfer cijfer3 = new Cijfer();
    cijfer3.setCijfer(cijfer);

    String letterstring1 = letterlijst.get(0).toString();
    String letterstring2 = letterlijst.get(1).toString();

    System.out.println(letterstring1 + letterstring2 + cijfer3);
}

Upvotes: 2

Views: 151

Answers (3)

Shadi A
Shadi A

Reputation: 124

you have to either override the toString() to print the letter or instead of using :

letterlijst.get(0)

use something like this :

letterlijst.get(0).getLetter() // return letter1 of setLetter(letter1)

Upvotes: 1

PermGenError
PermGenError

Reputation: 46428

override toString() in your Letter class, By default Object's toString() will be invoked

 @override
 public String toString() {
       return ""+ch1+ch2+number
  }

Where ch1, ch2 are the char attributes in your Letter class and number is an int attribute

Upvotes: 1

Martijn Courteaux
Martijn Courteaux

Reputation: 68887

You have to override your toString() method of the Letter and Cijfer class.

Something like this:

@Override
public String toString()
{
    return String.valueOf(mijnLetter);
}

But a nicer approach would be to a getter (getLetter()), instead of the toString.

Upvotes: 1

Related Questions