比较&一次从两个字符串中删除特定字符并显示其余字符串

时间:2013-09-26 06:59:16

标签: java string variables logic


我的探索是我有两个字符串,如durgaprasad和spandana。在这里我想比较第一个字符串第一个cahr到第二个字符串所有字符如果第一个sting第一个字符匹配然后从第一个&删除该字符第二个字符串也,然后显示字符串(除了删除char之外的所有字符) 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

2 个答案:

答案 0 :(得分: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--并且if语句中的j--

答案 1 :(得分:0)

这是一些代码。

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);
        }
    }
}

大多数情况下,您的代码都有效。您必须从firstStr以及secondStr中移除字符才能获得所需结果。此外,您可以使用+连接字符串。