Java for循环的字符替换方法问题
我正在尝试制作一种方法,用于比较两个字符串,并用星号替换并发字符,供初学者练习。 我相信已经有一些方法可以在String类或其他类中实现这一点,但是这个练习不允许我使用它们。 我试着用for循环来做。这是我的代码:Java for循环的字符替换方法问题,java,string,for-loop,Java,String,For Loop,我正在尝试制作一种方法,用于比较两个字符串,并用星号替换并发字符,供初学者练习。 我相信已经有一些方法可以在String类或其他类中实现这一点,但是这个练习不允许我使用它们。 我试着用for循环来做。这是我的代码: public void substrings(){ System.out.println ("Insert string 1 and press Intro"); String string1 = sc.nextLine(); System.out.prin
public void substrings(){
System.out.println ("Insert string 1 and press Intro");
String string1 = sc.nextLine();
System.out.println ("Insert string 2 and press Intro");
String string2 = sc.nextLine();
String major;
String minor;
if (string1.length() >= string2.length()){
major = string1;
minor = string2;
}
else{
major = string2;
minor = string1;
}
char[]replace = new char[major.length()];
for (int i = 0; i < major.length(); i++){
for (int j = 0; j < minor.length(); j++){
if (major.charAt(i) != minor.charAt(j)){
replace[i] = major.charAt(i);
}
else {
replace[i] = '*';
}
}
System.out.print (replace[i]);
}
System.out.print ("\n");
}
public static void main (String[]args){
Substrings Test = new Substrings();
Test.substrings();
}}
public void子字符串(){
System.out.println(“插入字符串1并按Intro”);
字符串string1=sc.nextLine();
System.out.println(“插入字符串2并按Intro”);
字符串string2=sc.nextLine();
弦乐大调;
弦乐小调;
如果(string1.length()>=string2.length()){
大调=弦1;
小调=弦2;
}
否则{
大调=弦2;
小调=弦1;
}
char[]replace=新字符[major.length()];
对于(int i=0;i
如果我将five fingers
作为字符串1插入,将five
作为字符串2插入,我将获得以下信息:
fiv*fing*rs
当我期待一些像*****ng*rs
有人能告诉我我做错了什么吗?谢谢 使用
*
for (int i = 0; i < major.length(); i++) {
for (int j = 0; j < minor.length(); j++) {
if (major.charAt(i) != minor.charAt(j)) {
replace[i] = major.charAt(i);
} else {
replace[i] = '*';
break; // here
}
}
System.out.print(replace[i]);
}
System.out.print("\n");
for(int i=0;i
你永远不会打破内心的for循环。因此,当您的system.out.print(replace[I])将五个字母中的e与“五个手指”中的字母进行比较时,它始终具有该值
因此,我相信,只要点击else语句,您就会希望从内部for循环中断。在Java 8中更容易:
string1.chars().mapToObj(e->String.valueOf((char)(string2.chars().anyMatch(e2->e==e2)?'*':e)).forEach(System.out::print)代码>