2015-04-24 23 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();