【发布时间】:2017-11-13 16:44:02
【问题描述】:
我正在开发一个程序,我们比较两个字符串并将一个字符串中不存在的字符添加到另一个字符串中,反之亦然。 例如:字符串 1- aabccd 字符串 2-acccdd 输出应该是 - 要添加到字符串 1 的字符 - cd 要添加到字符串 2-ab 的字符 当字符不重复时,我能够实现它, 例如:字符串 1- 芒果 弦2-盎格鲁 输出是 - 要添加到字符串 1 的字符 - l 要添加到字符串 2- m 的字符 但在字符重复时无法获取。
这是我写的代码-
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
String S1, S2;
System.out.println("Enter String 1: ");
S1 = user_input.next();
System.out.println("Enter String 2: ");
S2 = user_input.next();
user_input.close();
char[] S1Array = S1.toLowerCase().toCharArray();
char[] S2Array = S2.toLowerCase().toCharArray();
charAddition(S1Array, S2Array);
charAdditionReverse(S2Array,S1Array);
}
private static void charAddition(char[] n, char[] S1Array) {
for (char n1 : n) {
if (!isPresent(n1, S1Array)) {
System.out.println("character to be added to S2Array
is: " + n1);
}
}
}
private static void charAdditionReverse(char[] n, char[] S1Array) {
for (char n1 : n) {
if (!isPresent(n1, S1Array)) {
System.out.println("character to be added to S1Array
is: " + n1);
}
}
}
private static boolean isPresent(char n, char[] S1Array) {
for (char i : S1Array) {
if (n == i) {
return true;
}
}
return false;
}
}
【问题讨论】: