溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

java分割文本字符串的方法

發(fā)布時(shí)間:2020-09-23 03:58:23 來(lái)源:腳本之家 閱讀:134 作者:一只笨笨鳥(niǎo) 欄目:編程語(yǔ)言

問(wèn)題:在項(xiàng)目中,當(dāng)保存數(shù)據(jù)超過(guò)數(shù)據(jù)庫(kù)字段列長(zhǎng)度限制時(shí),如何解決?

一種常見(jiàn)的解決辦法是:截串存取。顧名思義,就是對(duì)大文本數(shù)據(jù)按指定長(zhǎng)度進(jìn)行截取,返回結(jié)果集依截取順序存儲(chǔ)在新表中。并通過(guò)在新表中創(chuàng)建一個(gè)type字段來(lái)標(biāo)識(shí)新表中截取的內(nèi)容對(duì)應(yīng)舊表中的字段名,而舊表中相應(yīng)的字段不再直接存放大文本數(shù)據(jù),而是存放標(biāo)識(shí)符。

這里,提供一種工具類(lèi),用來(lái)分割文本字符串,返回List結(jié)果集供下一步使用。

public class StringUtil {

  /** 
  * @Name: getContentByList
  * @Description: 字符串切割
  * @Author: 張(作者)
  * @Version: V1.00 (版本號(hào))
  * @Create Date: 2017-6-26(創(chuàng)建日期)
  * @Parameters: wholecontent:傳遞的文本字符串;
          cutcount:切割字符串的長(zhǎng)度
  * @Return: List:切割字符串形成的集合,存放結(jié)果集
  */
  public static List<String> getContentByList(String wholecontent,int cutcount){
    List<String> list = new ArrayList<String>();
    //獲取完整內(nèi)容字符串的總長(zhǎng)度
    int contentlen = wholecontent.length(); 
    //內(nèi)容截取,用內(nèi)容總長(zhǎng)和截取長(zhǎng)度進(jìn)行比較,無(wú)須截取的話(huà)直接插入
    if (contentlen < cutcount){ 
      list.add(wholecontent);
    }
    //內(nèi)容長(zhǎng)度超過(guò)截取長(zhǎng)度
    else{
      //定義并初始化內(nèi)容段落
      String contentpart ="";
      //定義并初始化被截取的段落數(shù)量
      int contentround =0;
      //開(kāi)始截取的位置
      int begincount = 0; 
      //判斷截取的段落數(shù)
       int contentcutpart = contentlen/cutcount; 
      int contentcutparts = contentlen%cutcount; //求余數(shù)
      //若余數(shù)為0,說(shuō)明被整除,內(nèi)容的長(zhǎng)度正好是截取長(zhǎng)度的倍數(shù)。
      if (contentcutparts==0){
        contentround = contentcutpart;
      }
      else{
        contentround = contentcutpart+1;
      }
      //循環(huán)截取內(nèi)容
      for (int i = 1; i <= contentround; i++) {
        //如果不是最后一個(gè)截取部分
        if (i != contentround){
          //按照截?cái)嚅L(zhǎng)度截取內(nèi)容
          contentpart = wholecontent.substring(begincount, cutcount*i);
        }
        else{
          //截取最后一部分內(nèi)容
          contentpart = wholecontent.substring(begincount, contentlen);
        }
        //賦值下一截取部分的起點(diǎn)位置
         begincount = cutcount*i; 
         list.add(contentpart);
      }
    }
    return list;
  }
}      

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI