2015-04-24 3 views
-3

Я немного коротко передаю понимание того, как я могу продолжить свой код. Я в основном занимаюсь вешалкой, и я сделал копию фактического слова. Копия заменяется пробелами, и мне интересно, как я могу заменить пробелы, когда игрок угадает ни словаЗамена частей строки на заданную позицию указателя фактической строки Java

 while(!gameOver && difficulty.equals("1") || difficulty.equals("3") || difficulty.equals("2")){ 
      System.out.println(userWord); 
      System.out.print("Enter your guess! Make sure it's a singular letter only!: "); 
      choice = inputs.nextLine().toLowerCase(); 
      while(choice.length()==1){ 
       int check1 = lettersGuessed.indexOf(choice); 
       if (check1 == -1){ 
        //System.out.println("b"); 
        lettersGuessed = lettersGuessed+letter; 
        if (word.indexOf(choice) == -1) { 
         mistakes++; //mISTAKES - add on to here 
         System.out.println("You guessed a wrong letter! Keep guessing!"); 
         break; 
        } 
        else{ 
         System.out.println("You've guessed a right letter!"); 
         String jake = word.indexOf(choice); 

         userWord = userWord.replace(userWord,jake); 
         break; 

и это моя игра цикла. в заявлении else внизу я не знаю, как я должен это разбираться. В нижней части я могу получить позицию индекса игрока в фактическом слове.

ответ

0

Строки неизменны на Java. Вы захотите построить новую строку.

Один из способов заключается в следующем:

char characterGuessed = choice.charAt(0); 
StringBuilder builder = new StringBuilder(); 
for(int i = 0; i < word.length(); i++) { 
    if(word.charAt(i) == characterGuessed) { 
     builder.append(characterGuessed); 
    } else { 
     builder.append(userWord.charAt(i)); 
    } 
} 
userWord = builder.toString(); 
Смежные вопросы