java显示两个字符串之间共享的字符
对于Java练习,我正在编写一个程序,用户在其中输入两个字符串。然后程序检查两个字符串是否共享任何相似的字符,并将它们输出到屏幕
例如,Terrarium和Terraform是它应该打印的两个字符串。然而,当我运行程序时,它总是简单地输出第一个字符串中的所有字符。(在这种情况下,T r a f o r m.)
基于对循环的有限理解,我怀疑我在制造一个逻辑错误。但当我寻找答案时,人们似乎总是使用与我类似的方法
以下是供您查看的代码:
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("");
}
}
}
}
# 1 楼答案
这段代码有两个问题
首先
如果这两个字符串的长度不同,则可以从另一个字符串的结尾处跳出,从而出现异常。所以,要这样做:
其次,你编写代码失败的原因是因为你有一个;在你生命的尽头。你的代码应该是:
祝你好运
# 2 楼答案
去掉这一行的分号,它应该会起作用。如果保留第二条,我也会去掉第一条