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 trialJiho Song
16,469 Pointswhere is wrong? Java scrabble player..
where should i correct? i thought that i was following the exactly same method with the lecture..
how should i do :(
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
this.tiles += tiles + tile;
}
public boolean hasTile(char tile) {
// TODO: Determine if user has the tile passed in
boolean doesIt = tiles.indexOf(tile) != -1;
if(doesIt)
{
return true;
}
return false;
}
}
Steve Hunter
57,712 PointsThe question specifically requests that the answer is provided by returning the result of an expression, not by using an if statement. The error is: Bummer! While you could definitely solve this using an if statement, try returning the result of the expression.
1 Answer
Steve Hunter
57,712 PointsHi there,
For this part of the question you want to check is tile
is contained within tiles
. You've correctly used the indexOf()
method. What you want to test, is whether the indexOf(tile)
is greater than or equal to zero; that means that the tile
is within tiles
. If tile
is not in there, the result is -1 which isn't greater than zero. Return the result of that method call.
Something like:
public boolean hasTile(char tile) {
// TODO: Determine if user has the tile passed in
return tiles.indexOf(tile) >= 0;
}
Make sense
Steve.
Jiho Song
16,469 Pointsthank you so much. i feel like what have i done haha
Steve Hunter
57,712 PointsGlad to help!
Also, your solution to the first part of that task could be simplified.
You have:
public void addTile(char tile) {
// TODO: Add the tile to tiles
this.tiles += tiles + tile;
}
... but all you need to do is add the tile
to the tiles
string:
public void addTile(char tile) {
// TODO: Add the tile to tiles
tiles += tile;
}
markmneimneh
14,132 Pointsmarkmneimneh
14,132 Pointsthe code is syntactically correct. what error are you seeing? is it a logic error?