对于Java练习,我正在编写一个程序,用户输入两个字符串。程序然后检查两个字符串是否共享任何相似的字符并将它们输出到屏幕上。显示两个字符串之间共享的字符
例如,Terrarium和Terraform是它应该打印的两个字符串。但是,当我运行我的程序时,它总是只输出第一个字符串中的所有字符。 (在这种情况下,请选择)
我怀疑我基于对循环的有限理解而创建了逻辑错误。但是当我寻找答案时,人们似乎总是对我自己使用类似的方法。
这里是您观看代码:
import java.util.Scanner;
public class CountMatches
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println(" Please enter a String >> ");
String stringA = keyboard.nextLine();
System.out.println(" Please enter another String >> ");
String stringB = keyboard.nextLine();
for(int counter = 0; counter < stringA.length(); counter++)
{
char compareA = stringA.charAt(counter);
char compareB = stringB.charAt(counter);
//System.out.println(compareA);
//System.out.println(compareB);
//System.out.println("");
if(compareA != compareB)
{
System.out.println("");
}
else if(compareA == compareB);
{
System.out.println(compareA);
System.out.println("");
}
}
}
}
您是否试图通过调试器逐句通过算法?这是查找逻辑错误的最佳方式。 – nolexa
如果我正确理解你的意图,它不应该打印出“t r r r r r r”,它应该打印出“t r r r r r m”,因为它们最后都有一个“m”。 –