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 Creating the MVP Scrabble Tiles

Ryan Hargreaves
Ryan Hargreaves
2,060 Points

Stuck with this question, it wants me to return true if the tile is in the word and false if it isnt.

Really stuck with this.

ScrabblePlayer.java
public class ScrabblePlayer {
  // A String representing all of the tiles that this player has
  private String tiles;

  public ScrabblePlayer() {
    tiles = "";
  }

  public String getTiles() {
    return tiles;
  }

  public void addTile(char tile) {
    // TODO: Add the tile to tiles
tiles += tile;
  }

  public boolean hasTile(char tile) {
    // TODO: Determine if user has the tile passed in
    return false;
  }

}

2 Answers

Yanuar Prakoso
Yanuar Prakoso
15,196 Points

Hi Ryan...

You need to use the String.indexOf(char) method to determine whether the char tile is present in the String tiles .

IF it is true, meaning the tile is present inside String tiles then it will return an integer > 0. IF false meaning the char tile is not present inside String tiles then it will return -1. Thus we can use this principle to test the hasTile method. Please remember the method hasTile returns boolean not int. This is how I do it:

public class ScrabblePlayer {
  // A String representing all of the tiles that this player has
  private String tiles;

  public ScrabblePlayer() {
    tiles = "";
  }

  public String getTiles() {
    return tiles;
  }

  public void addTile(char tile) {
    // TODO: Add the tile to tiles
tiles += tile;
  }

  public boolean hasTile(char tile) {
    // TODO: Determine if user has the tile passed in
    return (tiles.indexOf(tile)>0);//<-- this will return TRUE if tile is inside tiles and FALSE if vice versa.
  }

}

I hope this can help a little