2017-06-15 10 views
-2

私はコーディングのWebサイトから質問を解決していましたが、置き換える必要がありましたか? aまたはbを指定すると、連続した2つのaはありません。私はたくさん試しましたが、これは私が書いたコードです。コードは私の知る限り正しいと思われますが、このコードを実行するたびに出力は入力そのものと同じになります。変更はありません。文字列メソッドで正しい出力が得られません

例の場合: 入力:?ababa?b? 出力:babababba

入力:ababb B 出力

ababbab入力は、Bまたは枯れなければなりませんか 出力は、辞書内の優先順位が最も高くなるようにする必要があります。

しかし、どんな入力をしても同じ出力が得られます。 ?私が与えた場合、ABを入力として、私は、出力と同じを取得するJavaのStringは不変であるので、あなたは、あなたの結果を変数に割り当てる必要があり、私に

package Beginner; 

    import java.util.Scanner; 

    public class ExplRuin { 

     public static void main(String args[]){ 

      String s; 

      Scanner in = new Scanner(System.in); 

      s = in.nextLine(); 

      if(s.length()==1){ 

       if(s.equals("?")) 
        s.replace("?", "a"); 

      } else 
      { 
       if(s.toString().startsWith("?")){ 
        if(s.contains("?b")) 
         s.replace("?b","ab"); 
        else 
         if(s.contains("?a")) 
-       s.replace("?a", "ba"); 
       } 
       if(s.endsWith("?")){ 
        if(s.contains("a?")) 
         s.replace("a?", "ab"); 
        else 
         if(s.contains("b?")) 
          s.replace("b?","ba"); 
       } 
       if(s.contains("?a")||s.contains("a?")){ 
        s.replace("?", "a"); 
       } 
       else{ 
        s.replace("?", "a"); 
       }  
      } 
      System.out.print(s); 
      } 




     } 
+1

'STRING'があります不変なので 's = s.replace(...)'のように書く必要があります –

答えて

2

を助けてください:

s = s.replace("?", "a"); 
^^^---------------------------assign the result to your variable 
関連する問題