Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Objects (Retired) Creating the MVP For Each Loop

Robert Peterman
Robert Peterman
599 Points

Stuck on question.

""So back to that ScrabblePlayer. I found that it's not enough to know if they just have a tile of a specific character. We need to know how many they actually have. Can you please add a method called getTileCount that uses the for each loop you just learned to loop through the characters and increment a counter if it matches? Return the count, please, thanks!""

Bummer! The hand was "sreclhak" and 'e' was checked. Expected 1 but got 8.

I cant figure out why my code is producing an 8 for the count instead of the expected one. If someone could help me out with this I would appreciate it. Thanks.

ScrabblePlayer.java
public class ScrabblePlayer {
  private String mHand;

  public ScrabblePlayer() {
    mHand = "";
  }

  public String getHand() {
   return mHand;
  }

  public void addTile(char tile) {
    // Adds the tile to the hand of the player
    mHand += tile;
  }

  public boolean hasTile(char tile) {
   return mHand.indexOf(tile) > -1;
  }
  public int getTileCount(char letter){
    int count= 0;
  for(char letters:mHand.toCharArray()){
    if(mHand.indexOf(letters)>=0){

    count++;}

  }
    return count;
  }
}

2 Answers

Well done, you were almost there! However you need to check if letter is equal to letters.

  public int getTileCount(char tile) {
    int count = 0;
    for (char letter : mHand.toCharArray()) {
      if (letter == tile)
        count++;
    }
    return count;
  }
Piyush Patel
Piyush Patel
17,253 Points

Yeah, many of the questions are formed kind of vague. So, it is difficult to answer them in this course.