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

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

String.split()導(dǎo)致創(chuàng)建一個(gè)空字符串,如何防止這種情況?

String.split()導(dǎo)致創(chuàng)建一個(gè)空字符串,如何防止這種情況?

人到中年有點(diǎn)甜 2021-05-06 09:19:34
我有一個(gè)字符串,該字符串是較小形式字符串的串聯(lián)refNum orderNum,例如,包含參考號(hào)和訂單上項(xiàng)目數(shù)量的字符串BRICK1 10。較大的串聯(lián)字符串是將這些較小的字符串拼湊在一起并使用井號(hào)將它們分開(kāi)的數(shù)量,例如#BRICK1 10#BRICK2 20#BRICK3 30。當(dāng)我使用String.split()時(shí),我希望結(jié)果是一個(gè)將較大的字符串劃分為較小的元素的數(shù)組,因此BRICK1 10,BRICK2 20和BRICK3 30,但是當(dāng)我實(shí)際上嘗試使用“#”作為分隔符來(lái)拆分字符串時(shí),我得到了數(shù)組開(kāi)頭的第四個(gè)字符串為空。我不確定為什么會(huì)發(fā)生這種情況,如何預(yù)防呢?我的長(zhǎng)字符串是使用這種方法產(chǎn)生的public String getAllOrders()    {        String orderDetails = "";        for(BrickOrder o : orderList)        {            String order = "#" + o.getReferenceNumber() + " " + o.getNumberOfBricks();            System.out.println("ORDER: " + order);            orderDetails = orderDetails.concat(order);        }        return orderDetails;    }雖然在測(cè)試類中使用了split方法,但在這里。@Test    public void testFullOrderListReturnedCorrectly()    {        sys.createOrder(10);        sys.createOrder(100);        sys.createOrder(1000); //Create three orders        String orderList = sys.getOrders(); //Return full order list        System.out.println(orderList);        String[] orders = orderList.split("#");        System.out.println(orders.length);    }
查看完整描述

3 回答

?
慕桂英4014372

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

就是split那樣 它使用定界符對(duì)字符串進(jìn)行分割,并且即使不是空字符串(即使不是最后一個(gè)字符串),也保留字符串(即使為空)(排除空字符串)。但是在這種情況下,我建議您orderList在分割之前先檢查一下您的內(nèi)容,#如果它是第一個(gè)字符,則將其刪除:


String[] orders;

if (orderList.charAt(0) == '#') {

    orders = orderList.substring(1).split("#");

} else {

    orders = orderList.split("#");

}


查看完整回答
反對(duì) 回復(fù) 2021-05-19
?
汪汪一只貓

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

因?yàn)橐鸱值淖址阅x擇的定界符(#)開(kāi)始,所以在數(shù)組的開(kāi)頭會(huì)得到一個(gè)空字符串。您可以通過(guò)在拆分之前從一開(kāi)始將其刪除(String.substring(int)例如使用方法)來(lái)防止它。

解決方案示例:

String[] orders = orderList.substring(1).split("#");


查看完整回答
反對(duì) 回復(fù) 2021-05-19
?
忽然笑

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

我認(rèn)為問(wèn)題是由于您要在訂單字符串的開(kāi)頭附加“?!薄?/p>

拆分的工作方式是,它將在每個(gè)“#”處斷開(kāi)訂單字符串,并在訂單字符串的開(kāi)頭立即遇到第一個(gè)“?!保虼嗽撟侄螢榭?。

根據(jù)您的要求,您可以避免在開(kāi)始時(shí)添加此“?!?,或者在吐出之前刪除“#”,或者忽略分散數(shù)組的元素。

希望這可以澄清。


查看完整回答
反對(duì) 回復(fù) 2021-05-19
  • 3 回答
  • 0 關(guān)注
  • 453 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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