它应该计算字符串中匹配对的数量。
public class tests {
public static void main(String[] args) {
System.out.print("Please enter a word: ");
Scanner inpFirst = new Scanner(System.in);
String inputF = inpFirst.nextLine();
System.out.print("Please enter another word: ");
Scanner inpSecond = new Scanner(System.in);
String inputS = inpSecond.nextLine();
int lenghtF = inputF.length() - 1;
int lengthS = inputS.length() - 1;
int f = 0;
int s = 0;
int matchingPairs = 0;
while ((f < lenghtF) & (s < lengthS)) {
char testF = inputF.charAt(f);
char testS = inputS.charAt(s);
if (testF == testS) {
char testTwoF = inputF.charAt(f+1);
char testTwoS = inputS.charAt(f+1);
if (testTwoF == testTwoS)
matchingPairs = matchingPairs++;
}
System.out.println("jrfjtf");
f = f++;
s = s++;
}
System.out.println("The number of matching pairs is: " + matchingPairs);
}
}
答案 0 :(得分:4)
将循环的最后两行更改为f++
和s++
。
基本上,设置
f = f++
不会增加值,而是设置f=f
,而只需要f++
。
正如马苏德所提到的,将您的运营商改为&amp;&amp;和&amp ;.大多数情况下(尤其是使用if语句),您应该使用&&
运算符。
答案 1 :(得分:1)
您使用的是&
,它是按位运算符。在while循环中使用conditional and (
&amp;&amp; )
运算符代替&
。
答案 2 :(得分:0)
好像你有一个增量问题。 1.使用按位和运算符 - '&amp;'似乎没问题。它只是计算条件的两个方面,而不是像“if(foo!= null&amp;&amp; foo.doOpperation)”那样制作快捷方式,如果foo为null,则不会检查右侧,这样你可以避免'null refferance error'。 你以错误的方式表达,“f = f ++”会保持原样。
建议:使用&amp;&amp;在条件和“f ++;”作为增量运算符。 在这种情况下的另一个建议是使用for循环,你的条件很简单,而f和s的操作只是在进行中。