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

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

分隔符上的 Java 子字符串不使用拆分或正則表達式

分隔符上的 Java 子字符串不使用拆分或正則表達式

喵喔喔 2022-07-20 16:28:10
我有一個單獨的測試類,它將傳入一個高值和低值的字符串,中間有一個:,代表數字 0-6。一個例子是“6:2”。我需要根據分隔符分隔這些數字:分隔符,但我的教授不希望我使用拆分或任何正則表達式。public class DominoHighLowImpl_Laursen implements Domino {public static final String HIGH_LOW_STRING_SEPARATOR = ":";public DominoHighLowImpl(String highLowString) {}所以打字String substr = highLowString.substring(highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR) + 1);  按我的預期返回分隔符后的數字但String substr = highLowString.substring(highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR) - 1);不返回分隔符之前的數字。我在最后一部分做錯了什么?
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

檢查substring(int beginIndex)和substring(int beginIndex, int endIndex):


String high = highLowString.substring(0, highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR));

String low = highLowString.substring(highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR) + 1);


查看完整回答
反對 回復 2022-07-20
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

該substring方法被重載,這意味著它可能被稱為傳遞不同數量的int參數/參數。如果你只用一個來調用它,你會得到一個子字符串,它從傳遞的索引開始,到String. 如果您使用兩個參數調用它,您將收到從傳遞的較低索引開始并在第二個索引傳遞之前結束的子字符串。


看這個例子:


public class DominoHighLowImpl_Laursen {


    public static final String HIGH_LOW_STRING_SEPARATOR = ":";


    private String highLowString;


    public DominoHighLowImpl_Laursen(String highLowString) {

        this.highLowString = highLowString;

    }


    public String getLow() {

        return highLowString.substring(0, highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR));

    }


    public String getHigh() {

        return highLowString.substring(highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR) + 1);

    }


    public static void main(String[] args) {

        DominoHighLowImpl_Laursen domino = new DominoHighLowImpl_Laursen("1020304:4456778");


        System.out.println("High:\t" + domino.getHigh());

        System.out.println("Low:\t" + domino.getLow());

    }

}


查看完整回答
反對 回復 2022-07-20
?
德瑪西亞99

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

String substr = highLowString.substring(highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR) + 1); 正在工作,因為indexOf(HIGH_LOW_STRING_SEPARATOR)是 1。所以substring(2)將包含“2”。

但是當你這樣做時

String substr = highLowString.substring(highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR) - 1)該值變為indexOf(0)存儲整個字符串“6:2”。

嘗試

String substr = highLowString.substring(0,highLowString.indexOf(HIGH_LOW_STRING_SEPARATOR)); 得到“6”。


查看完整回答
反對 回復 2022-07-20
  • 3 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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