1


我的问题是我有两个字符串,例如 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

4

2 回答 2

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 循环迭代(尽管我想你可以在 if 语句中i--这样做)。j--

于 2013-09-26T07:10:26.637 回答
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);
        }
    }
}

大多数情况下,您的代码是有效的。您必须从中删除角色firstStrsecondStr获得想要的结果。此外,您可以使用 just 连接字符串+

于 2013-09-26T07:09:10.050 回答