我的探索是我有两个字符串,如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
答案 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
中移除字符才能获得所需结果。此外,您可以使用+
连接字符串。