亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

for 循環的字符替換方法的問題

for 循環的字符替換方法的問題

慕斯709654 2022-09-28 16:25:22
我正在嘗試制作一個比較兩個字符串并用星號替換并發字符的方法,以供初學者練習。我認為在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,我得到這些:five fingersfivefiv* fing*rs雖然我期待一些喜歡**** **ng*rs有人能告訴我我做錯了什么嗎?謝謝!!
查看完整描述

2 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

用遮罩后停止循環*


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


查看完整回答
反對 回復 2022-09-28
?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

你永遠不會打破你內在的循環。因此,您的 system.out.print(替換 [I]) 在將 e 從五個與來自 “五個手指” 的字母進行比較時,始終具有該值

所以,每當你碰到我相信的其他東西時,你都會想要打破你內心的for-loop。


查看完整回答
反對 回復 2022-09-28
  • 2 回答
  • 0 關注
  • 98 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號