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

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

使用 String.replace 復(fù)制最終字符串

使用 String.replace 復(fù)制最終字符串

千萬里不及你 2021-11-11 16:07:38
我有以下測試:public void testStringReplace()    {            final String placeholder = "$ph$";        final String template = "<test>" + placeholder + "</test>";        final String result = "<test>Hello!</test>";        String copyOfTemplate = template;        copyOfTemplate.replace(placeholder, "Hello!");        if(!copyOfTemplate.equals(result));            fail();    }測試總是失敗,但為什么呢?我必須如何定義copyOfTemplate才能改變它?或者我在這里遺漏了一些其他細(xì)節(jié)?
查看完整描述

3 回答

?
小怪獸愛吃肉

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

字符串是不可變的所以調(diào)用

copyOfTemplate.replace(placeholder, "Hello!");

沒有將它分配給任何有效的東西什么都不做。它返回一個(gè)帶有替換的新字符串,您忽略了它。任何半體面的 IDE 都會(huì)警告您這一點(diǎn):

http://img1.sycdn.imooc.com//618ccf640001897503550067.jpg

此外,String copyOfTemplate = template也沒有真正做任何事情。這不是副本。它只是一個(gè)指向相同底層字符串的新變量。沒有方法可以復(fù)制字符串,因?yàn)樽址遣豢勺兊模虼烁北咀兊脽o用。

你要

String copyOfTemplate = template.replace(placeholder, "Hello!");

我建議閱讀有關(guān)字符串Oracle 教程。您似乎錯(cuò)過了一些基礎(chǔ)知識(shí)。


查看完整回答
反對 回復(fù) 2021-11-11
?
回首憶惘然

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

我在您的代碼中看到兩個(gè)主要問題:

  • 您對String#replace 的使用

    copyOfTemplate.replace(placeholder, "Hello!");返回一個(gè)新字符串,它不會(huì)更新它。您必須將其分配給一個(gè)新變量。

  • 最后的if聲明

    if(!copyOfTemplate.equals(result));由于您添加了分號,因此 if 不執(zhí)行任何操作,并且您始終可以訪問該fail()方法。就好像你寫道:

    if(!copyOfTemplate.equals(result)) {
    }
    失?。ǎ?


查看完整回答
反對 回復(fù) 2021-11-11
?
郎朗坤

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

請使用以下代碼


public static void main(String[] args) {


        final StringBuilder placeholder = new StringBuilder("$ph$");

        final StringBuilder template = new StringBuilder("<test>" + placeholder + "</test>");

        final StringBuilder result = new StringBuilder("<test>Hello!</test>");


        replaceString(template, placeholder.toString(), "Hello!");

        System.out.println(template);


    }


    public static void replaceString(StringBuilder sb, String toReplace, String replacement) {

        int index = -1;

        while ((index = sb.lastIndexOf(toReplace)) != -1) {

            sb.replace(index, index + toReplace.length(), replacement);

        }

    }


查看完整回答
反對 回復(fù) 2021-11-11
  • 3 回答
  • 0 關(guān)注
  • 205 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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