【发布时间】:2019-10-28 22:47:32
【问题描述】:
public class findMatching {
public static void main(String[] args) {
String matchOne = "caTch";
String matchTwo = "cat";
findMatching(matchOne, matchTwo);
}
public static void findMatching(String matchOne, String matchTwo) {
int lengthOne = matchOne.length();
int lengthTwo = matchTwo.length();
char charOne;
char charTwo;
while(!matchOne.equals(matchTwo)) {
for(int i = 0; i < lengthOne && i < lengthTwo; i++) {
charOne = matchOne.charAt(i);
charTwo = matchTwo.charAt(i);
if(charOne == charTwo && lengthOne >= lengthTwo) {
System.out.print(charOne);
} else if (charOne == charTwo && lengthTwo >= lengthOne){
System.out.print(charTwo);
} else {
System.out.print(".");
}
}
}
}
}
我创建了一个名为 findMatching 的静态方法,该方法接受两个字符串参数,然后比较它们是否匹配字符。如果检测到匹配字符,它将打印所述字符,而不匹配的字符则用“。”表示。而是。
EX:对于
caTch和cat,预期的输出应该是ca...,其中不匹配的字符用“.”表示在较长的字符串中。
然而,现在我的程序的输出只打印出ca.,因为它只打印较短字符串的不匹配字符。我相信问题的根源可能在于我的 lengthOne 和 lengthTwo 的 if 语句的逻辑。
【问题讨论】: