初学者 -
我需要在一组两个字符串中找到奇数字符。一切都在编译,但是当它打印出奇怪的字符时,它会打印出更长字符串的字符。有谁知道我怎么能解决它?
感谢
public class odd
{
public static void main(String[] args)
{
String str1;
String str2;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter 2 words:");
str1 = keyboard.nextLine();
str2 = keyboard.nextLine();
int n1 = str1.length();
int n2 = str2.length();
int x1 = 0, x2 = 0;
if (Math.abs(n1-n2)==1)
{
if (n1 > n2)
{
x1 = n1;
x2 = n2;
}
if(n1 < n2)
{
x1 = n2;
x2 = n1;
String temp = str1;
str1 = str2;
str2 = str1;
}
}
else
{
System.out.print("Invalid input.");
}
for (int i=0; i < x1; i++)
{
for (int j = 0; j < x2; j++)
{
if(str1[i]==str2[j])
{
System.out.println("Extra letter is: " + str1[i]);
break;
}
}
}
}
}
答案 0 :(得分:0)
if(str1[i]==str2[j])
{
System.out.println("Extra letter is: " + str1[i]);
break;
}
您正在检查字符是否匹配,然后打印是否匹配,当您声明的意图相反时:检查它们是否不同,然后打印(如果是这种情况)。将您的 == 更改为!= ,您应该会得到所需的结果。
为清晰起见, == 是等于运算符,!= 是不等运算符。
答案 1 :(得分:0)
为了使程序正常工作,您的第一个字符串减去第二个字符串必须等于1: Math.abs(N1-N2)== 1 修复这段代码,提示:是否需要?
答案 2 :(得分:0)
@jjuutz使用以下方法来获取两个字符串之间的差异。
array_keys(get_object_vars($oJSON->{$oQ->sQuestionName}))[0]