我有2个字符串:
first =“BSNLP”
second =“PBN”(或用户输入的任何内容)。
要求是,O / P应该返回仅包含第一个但不包含第二个字符的字符串。 例如。在这种情况下,O / P是SL
为Eg2。
,o / p =“ASD”
为此,我开发了编码:
String one = "pnlm";
String two ="bsnl";
String fin = "";
for(int i =0; i<one.length();i++)
{
for(int j=0;j<two.length();j++)
{
//System.out.print(" "+two.charAt(j));
if(one.charAt(i) == two.charAt(j))
{
fin+=one.charAt(i);
}
}
}
ch=removeDuplicates(fin);
System.out.print(" Ret ::"+fin);
System.out.println("\n Val ::"+ch);
CH给了我相同字符的字符串,但是使用这个逻辑我不能得到不相等的字符。
有人可以帮忙吗?
答案 0 :(得分:3)
您可以使用Set interface
添加所有第二个字符数组,以便日后查看。
<强>样品:强>
String one = "ASDR";
String two ="MRT";
StringBuilder s = new StringBuilder();
Set<Character> set = new HashSet<>();
for(char c : two.toCharArray())
set.add(c); //add all second string character to set
for(char c : one.toCharArray())
{
if(!set.contains(c)) //check if the character is not one of the character of second string
s.append(c); //append the current character to the pool
}
System.out.println(s);
<强>结果:强>
ASD
答案 1 :(得分:1)
我简单地交换你的逻辑: -
字符串一=&#34; pnlm&#34 ;;
字符串二=&#34; bsnl&#34 ;;
String fin =&#34;&#34 ;;
int cnt;
for(int i = 0; i&lt; one.length(); i ++)
{
cnt = 0; //零,没有字符相等
for(int j = 0; j&lt; two.length(); j ++)
{
// System.out.print(&#34;&#34; + two.charAt(j));
if(one.charAt(i) == two.charAt(j))
{
cnt = 1; // ont for character equal
}
}
if(cnt == 0)
fin+=one.charAt(i);
}
System.out.print(" Ret ::"+fin);
o / p: Ret :: pm
答案 2 :(得分:0)
public static void main(String[] args)
{
String one = "ASDR";
String two ="MRT";
String fin = unique(one, two);
System.out.println(fin);
}
private static String unique(final String one,
final String two)
{
final List<Character> base;
final Set<Character> toRemove;
final StringBuilder remaining;
base = new ArrayList<>(one.length());
toRemove = new HashSet<>();
for(final char c : one.toCharArray())
{
base.add(c);
}
for(final char c : two.toCharArray())
{
toRemove.add(c);
}
base.removeAll(toRemove);
remaining = new StringBuilder(base.size());
for(final char c : base)
{
remaining.append(c);
}
return (remaining.toString());
}
答案 3 :(得分:-1)
StringBuilder
stringBuilder.toString()