對於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」。 –