【问题标题】:Compare two strings and replace matches比较两个字符串并替换匹配项
【发布时间】:2021-12-20 14:11:16
【问题描述】:

我对 Java 很陌生,我有以下任务:

逐个字母比较字符串 1 和字符串 2,找到匹配的并用 * 替换它们。

我完全迷路了,需要一些帮助。这是我自己整理的一些代码。

Scanner sc = new Scanner(System.in);
String str1 =  sc.nextLine();
String str2 =  sc.nextLine();
        
char char1 = str1.charAt(0);
char char2 = str2.charAt(0);
        
for(int i=0; i<str1.length();i++){
   if(str2.equals(str1)){
                
   }
}

【问题讨论】:

    标签: java string replace


    【解决方案1】:

    您的代码在正确的轨道上。我建议在这里使用StringBuilder 来构建两个替换字符串:

    Scanner sc = new Scanner(System.in);
    String str1 =  sc.nextLine();
    String str2 =  sc.nextLine();
    
    StringBuilder sb1 = new StringBuilder();
    StringBuilder sb2 = new StringBuilder();
    
    for (int i=0; i < str1.length(); i++) {
        char char1 = str1.charAt(i);
        char char2 = str2.charAt(i);
        if (char1 == char2) {
            sb1.append('*');
            sb2.append('*');
        }
        else {
            sb1.append(char1);
            sb2.append(char2);
        }
    }
    
    System.out.println("New string1 is: " + sb1.toString());
    System.out.println("New string2 is: " + sb2.toString());
    

    请注意,此答案假定两个输入字符串的长度相同。它不会尝试对此进行检查,也不会考虑两个长度不等的字符串的行为。

    【讨论】:

      【解决方案2】:

      试试这个。

      public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          StringBuilder str1 = new StringBuilder(sc.nextLine());
          StringBuilder str2 = new StringBuilder(sc.nextLine());
          for (int i = 0, size = Math.min(str1.length(), str2.length()); i < size; ++i)
              if (str1.charAt(i) == str2.charAt(i)) {
                  str1.setCharAt(i, '*');
                  str2.setCharAt(i, '*');
              }
          System.out.println("str1=" + str1 + " str2=" + str2);
      }
      

      输入:

      abcdefg
      cbadex
      

      输出:

      str1=a*c**fg str2=c*a**x
      

      【讨论】:

        猜你喜欢
        • 2012-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-25
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 2015-07-31
        相关资源
        最近更新 更多