gpt4 book ai didi

java - for 循环的字符替换方法的问题

转载 作者:行者123 更新时间:2023-11-30 05:41:14 26 4
gpt4 key购买 nike

我正在尝试创建一种方法来比较两个字符串并用星号替换并发字符以供初学者练习。我认为在 String 类或其他类中已经存在一些方法可以做到这一点,但练习不允许我使用它们。我尝试用 for 循环来做到这一点。这是我的代码:

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();


}}

如果我插入五个手指作为字符串1,五个作为字符串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");

关于java - for 循环的字符替换方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55617371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com