比较两个字符串并替换匹配项
Compare two strings and replace matches
我是 Java 的新手,我有以下任务:
Compare string 1 to string 2 letter by letter and find those that match and replace them with *.
我完全迷路了,需要一些帮助。这是我自己整理的一些代码。
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
String str2 = sc.nextLine();
char char1 = str1.charAt(0);
char char2 = str2.charAt(0);
for(int i=0; i<str1.length();i++){
if(str2.equals(str1)){
}
}
您的代码在正确的轨道上。我建议在这里使用 StringBuilder
来构建两个替换字符串:
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
String str2 = sc.nextLine();
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
for (int i=0; i < str1.length(); i++) {
char char1 = str1.charAt(i);
char char2 = str2.charAt(i);
if (char1 == char2) {
sb1.append('*');
sb2.append('*');
}
else {
sb1.append(char1);
sb2.append(char2);
}
}
System.out.println("New string1 is: " + sb1.toString());
System.out.println("New string2 is: " + sb2.toString());
请注意,此答案假定两个输入字符串的长度相同。它不会尝试对此进行检查,也不会考虑两个不等长字符串的行为。
试试这个。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder str1 = new StringBuilder(sc.nextLine());
StringBuilder str2 = new StringBuilder(sc.nextLine());
for (int i = 0, size = Math.min(str1.length(), str2.length()); i < size; ++i)
if (str1.charAt(i) == str2.charAt(i)) {
str1.setCharAt(i, '*');
str2.setCharAt(i, '*');
}
System.out.println("str1=" + str1 + " str2=" + str2);
}
输入:
abcdefg
cbadex
输出:
str1=a*c**fg str2=c*a**x
我是 Java 的新手,我有以下任务:
Compare string 1 to string 2 letter by letter and find those that match and replace them with *.
我完全迷路了,需要一些帮助。这是我自己整理的一些代码。
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
String str2 = sc.nextLine();
char char1 = str1.charAt(0);
char char2 = str2.charAt(0);
for(int i=0; i<str1.length();i++){
if(str2.equals(str1)){
}
}
您的代码在正确的轨道上。我建议在这里使用 StringBuilder
来构建两个替换字符串:
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
String str2 = sc.nextLine();
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
for (int i=0; i < str1.length(); i++) {
char char1 = str1.charAt(i);
char char2 = str2.charAt(i);
if (char1 == char2) {
sb1.append('*');
sb2.append('*');
}
else {
sb1.append(char1);
sb2.append(char2);
}
}
System.out.println("New string1 is: " + sb1.toString());
System.out.println("New string2 is: " + sb2.toString());
请注意,此答案假定两个输入字符串的长度相同。它不会尝试对此进行检查,也不会考虑两个不等长字符串的行为。
试试这个。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder str1 = new StringBuilder(sc.nextLine());
StringBuilder str2 = new StringBuilder(sc.nextLine());
for (int i = 0, size = Math.min(str1.length(), str2.length()); i < size; ++i)
if (str1.charAt(i) == str2.charAt(i)) {
str1.setCharAt(i, '*');
str2.setCharAt(i, '*');
}
System.out.println("str1=" + str1 + " str2=" + str2);
}
输入:
abcdefg
cbadex
输出:
str1=a*c**fg str2=c*a**x