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

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

在Java中將多個字詞后的字符串包裝起來

在Java中將多個字詞后的字符串包裝起來

翻閱古今 2019-11-02 10:44:42
我有以下代碼:    String s = "A very long string containing " +                   "many many words and characters. " +                   "Newlines will be entered at spaces.";    StringBuilder sb = new StringBuilder(s);    int i = 0;    while ((i = sb.indexOf(" ", i + 20)) != -1) {        sb.replace(i, i + 1, "\n");    }    System.out.println(sb.toString());代碼的輸出為:A very long string containingmany many words andcharacters. Newlineswill be entered at spaces.上面的代碼將字符串包裝在每30個字符的下一個空格之后,但是我需要將字符串包裝在每30個字符的前一個空格之后,就像第一行一樣:A very long string第二行是containing many請給出一些適當的解決方案。
查看完整描述

3 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

您可以使用Apache通用的 WordUtils.wrap()。


查看完整回答
反對 回復 2019-11-02
?
泛舟湖上清波郎朗

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

您可以嘗試以下方法:


public static String wrapString(String s, String deliminator, int length) {

    String result = "";

    int lastdelimPos = 0;

    for (String token : s.split(" ", -1)) {

        if (result.length() - lastdelimPos + token.length() > length) {

            result = result + deliminator + token;

            lastdelimPos = result.length() + 1;

        }

        else {

            result += (result.isEmpty() ? "" : " ") + token;

        }

    }

    return result;

}

調用為wrapString(“ asd xyz afz”,“ \ n”,5)


查看完整回答
反對 回復 2019-11-02
  • 3 回答
  • 0 關注
  • 373 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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