【问题标题】:Compare & Remove a specific character from two strings at a time and display the remaining strings一次比较和删除两个字符串中的特定字符并显示剩余的字符串
【发布时间】:2013-10-02 00:29:53
【问题描述】:


我的问题是我有两个字符串,例如 durgaprasad 和 spandana 。在这里,我想将第一个字符串的第一个 cahr 与第二个字符串的所有字符进行比较,如果第一个字符串的第一个字符匹配,然后从第一个和第二个字符串中删除该字符,然后显示该字符串(除已删除的字符外的所有字符)。
like
durgaprasad
spandana

第一个字符串第一个字符 - d
与第二个字符串中的所有字符进行比较-
成立---在位置[4]--d
从第一个字符串和第二个字符串中删除该字符 所以我们得到-----
第一个字符串:urgaprasad
第二个字符串:spanana

最后我想得到--
第一个字符串--urgrd
第二个字符串--nn

我已经尝试了很多,但与上面的代码相比,我的代码是这样的

      for(int i = 0; i < firstStr.length(); i++) {       
            System.out.println("char position  :"+firstStr.charAt(i));  
            int k = 0;  
            for( int j = 0; j < secondStr.length(); j++) {  
                //System.out.println("second position :"+secondStr.charAt(j));  
                if ( ( firstStr.charAt(i) == secondStr.charAt(j) ) && ( k == 0 ) ) {  
                    secondStr = secondStr.substring( 0 , j ).concat(secondStr.substring( j + 1 ) );<br />firstStr = firstStr.substring( 0 , i ).concat(firstStr.substring( i + 1 ) );  
                }                                          
            }
        }


根据我的要求,我在这里做了哪些更改

Thanks

【问题讨论】:

    标签: java string variables logic


    【解决方案1】:

    类似……这个?

    public void RemoveCharacter(String s1, String s2) {
        System.out.println("First string: " + s1 + "\nSecond string: " + s2);
        for (int i = 0; i < s1.length(); i++) {
            for (int j = 0; j < s2.length(); j++) {
                if (s1.charAt(i) == s2.charAt(j)) {
                    RemoveCharacter(s1.substring(0, i) + s1.substring(i + 1), s2.substring(0, j) + s2.substring(j + 1);
                    return;
                }
            }
        }
    }
    

    如果你想不断地删除字符,它几乎必须是一个递归函数,因为删除字符会破坏 for 循环迭代(尽管我想你 可以i-- 和 @987654323 @ 在 if 语句中)。

    【讨论】:

      【解决方案2】:

      这里有一些代码。

      for(int i = 0; i < firstStr.length(); i++) {
          System.out.println("char position :" + firstStr.charAt(i));
          for(int j = 0; j < secondStr.length(); j++) {
              //System.out.println("second position :" + secondStr.charAt(j));
              if (firstStr.charAt(i) == secondStr.charAt(j)) {
                  firstStr = firstStr.substring(0, i) + firstStr.substring(i + 1);
                  secondStr = secondStr.substring(0, j) + secondStr.substring(j + 1);
              }
          }
      }
      

      您的代码大部分是有效的。您必须从firstStrsecondStr 中删除该字符才能获得想要的结果。此外,您可以仅使用 + 连接字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-24
        相关资源
        最近更新 更多