第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在大寫字符java之間添加空格

在大寫字符java之間添加空格

慕尼黑8549860 2021-08-25 16:36:53
我是 Java 的初學(xué)者。下面是我寫的一段代碼。目的是在每個(gè)大寫字符之間添加一個(gè)空格,例如 string="ILoveMyDog" 到 "I Love My Dog"。然而,這段代碼的結(jié)果是“ILoveMy Dog”。有人可以幫我弄清楚出了什么問題嗎?upperCaseList 是另一種提取所有大寫字符的索引并將它們放入列表的方法,我很確定那部分是正確的for (int i = 0; i < upperCaseList.size(); i++) {    newStr = w.replace(w.substring(upperCaseList.get(i), upperCaseList.get(i)+1), " "+ w.substring(upperCaseList.get(i), upperCaseList.get(i)+1));    }return newStr
查看完整描述

2 回答

?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

這是因?yàn)槟鶶tring.replace通過newStr在循環(huán)內(nèi)重新分配來覆蓋結(jié)果。因此,您只能看到最后一次替換的效果。


假設(shè) 的內(nèi)容upperCaseList是1, 5, 7。


在循環(huán)迭代 1 之后,newStr有I LoveMyDog


在循環(huán)迭代 2 之后,newStr有ILove MyDog(您沒有使用先前的結(jié)果,而是使用原始字符串)


在循環(huán)迭代 3 之后,newStr有ILoveMy Dog


試試這個(gè),


String newStr = w;

for (int i = 0; i < upperCaseList.size(); i++) {

    newStr = newStr.replace(w.substring(upperCaseList.get(i), upperCaseList.get(i)+1), " "+ w.substring(upperCaseList.get(i), upperCaseList.get(i)+1));

}

不過有很多方法可以解決這個(gè)問題。不是存儲(chǔ)包含大寫字符的索引列表并使用String.substringand String.replace,您可以使用StringBuilder通過循環(huán)字符并檢查它是否是大寫/小寫來從原始字符串構(gòu)建字符串。


StringBuilder resultBuilder = new StringBuilder();


for (int i = 1; i < w.length(); i++) { //Note: Starting at index 1

    if (Character.isUpperCase(w.charAt(i))) {

        resultBuilder.append(" ")

                .append(w.charAt(i));

    } else {

        resultBuilder.append(w.charAt(i));

    }

}

System.out.println(resultBuilder.toString());


查看完整回答
反對(duì) 回復(fù) 2021-08-25
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊

不確定您是如何創(chuàng)建 upperCaseList 的,我建議為所有人創(chuàng)建一個(gè)循環(huán)。希望下面的代碼可以滿足您的要求。


public void test(){


    String str ="ILoveMyDog";

    StringBuilder strBuilder  = new StringBuilder();


    for (int i = 0; i< str.length() ; i++) {

        if(Character.isUpperCase(str.charAt(i))){

            //add space

            strBuilder.append(" ");

        }

        //add the orginal char

        strBuilder.append(str.charAt(i));

    }

    //use toString method 

    System.out.println(strBuilder.toString());

}


查看完整回答
反對(duì) 回復(fù) 2021-08-25
  • 2 回答
  • 0 關(guān)注
  • 227 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)