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

Mekonnen Abebe
Mekonnen Abebe
2,122 Points

I couldn't finger out the what is the error ... it says the brace

I couldn't pass this thing I don't know what to do everything is correct but it doesn't pass it says brace error... is any one has a full solution for this? please let me see...

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
    if(tile.indexOf(tile) >= 0) {
      return true;
    }else{
    return false;
    }
  }

}

2 Answers

tuvshin tulga
tuvshin tulga
2,458 Points

This is an issue with your boolean method. It is a bit confusing, but pretty much, you dont have a default return statement here. You are saying return true or false depending on the if statement, but in Java, it may not necessarily go into the statements. You can just remove the else condition and say return false after the if statment. By doing this, if your "tile.indexOf(tile) >= 0" condition passes, it will return true, but when it doesnt it will return false.

Mekonnen Abebe
Mekonnen Abebe
2,122 Points

But still, it does not work.

tuvshin tulga
tuvshin tulga
2,458 Points

Oh, you also are doing tile.indexOf(tile), which is just checking if tile contains itself. You probably need to change it to tiles.indexOf(tile). Notice you are using tile, the variable in the method, and not tiles, the global string.

Edit: I went to the challenge and made the changes I specified in comments and I got it to pass.