import java.util.Scanner;
public class 随便 {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
String str1 = sca.nextLine();
String str2 = sca.nextLine();
StringBuffer s1 = new StringBuffer(str1);
StringBuffer s2 = new StringBuffer(str2);
int m = 0;
for (int i = 0; i < s1.length() - 1; i++) {
if (str1.charAt(i) != str2.charAt(i)) {
m++;
if (s1.charAt(i) == '*')
s1.setCharAt(i, 'o');
else
s1.setCharAt(i, '*');
if (s1.charAt(i + 1) == '*')
s1.setCharAt(i + 1, 'o');
else
s1.setCharAt(i + 1, '*');
}
}
System.out.println(m); // 打印结果或进行其他操作
}
}
import java.util.Scanner;
public class 随便 {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
String str1 = sca.nextLine();
String str2 = sca.nextLine();
StringBuffer s1 = new StringBuffer(str1);
StringBuffer s2 = new StringBuffer(str2);
int m = 0;
for (int i = 0; i < s1.length() - 1; i++) {
if (s1.charAt(i) != s2.charAt(i)) {
m++;
if (s1.charAt(i) == '*')
s1.setCharAt(i, 'o');
else
s1.setCharAt(i, '*');
if (s1.charAt(i + 1) == '*')
s1.setCharAt(i + 1, 'o');
else
s1.setCharAt(i + 1, '*');
}
}
System.out.println(m); // 打印结果或进行其他操作
}
}
你能发现这两快代码的区别吗?
if (s1.charAt(i) != s2.charAt(i)) {
if (str1.charAt(i) != str2.charAt(i))
在于for循环下第一个if判断语句。
String str1 = sca.nextLine();
StringBuffer s1 = new StringBuffer(str1);
这两个不是一个东西,但是作为新手的我只顾着去关注方法的实现而忘了两者的区别,我改变了s1但是str1是不会被改变的,它仅仅起到传递参数的作用, StringBuffer改变的不是str1,而是自己拥有的和str1一样的字符串。