2017-06-15 69 views
-2

所以我正在解决一个需要我替换的编码网站的问题?与a或b提供了没有两个连续的...我已经尝试了很多,这是我写的代码。虽然代码似乎是正确的,但我运行此代码时输出与输入本身相同。没有改变。字符串方法没有给出正确的输出

示例: 输入:?ababa?b? 输出:babababba

输入:ababb b 输出:ababbab

输入必须被枯萎a,b或? 输出必须在字典中具有最高优先级。

但是,无论我给我输入我得到相同的输出。 ?如果我给AB作为输入,我得到了相同的输出,请帮我

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

你要的结果分配给您的变量,因为字符串在Java中是不可变的:

s = s.replace("?", "a"); 
^^^---------------------------assign the result to your variable 
相关问题