java分割文本字符串的方法
問題:在項目中,當(dāng)保存數(shù)據(jù)超過數(shù)據(jù)庫字段列長度限制時,如何解決?
一種常見的解決辦法是:截串存取。顧名思義,就是對大文本數(shù)據(jù)按指定長度進(jìn)行截取,返回結(jié)果集依截取順序存儲在新表中。并通過在新表中創(chuàng)建一個type字段來標(biāo)識新表中截取的內(nèi)容對應(yīng)舊表中的字段名,而舊表中相應(yīng)的字段不再直接存放大文本數(shù)據(jù),而是存放標(biāo)識符。
這里,提供一種工具類,用來分割文本字符串,返回List結(jié)果集供下一步使用。
public class StringUtil { /** * @Name: getContentByList * @Description: 字符串切割 * @Author: 張(作者) * @Version: V1.00 (版本號) * @Create Date: 2017-6-26(創(chuàng)建日期) * @Parameters: wholecontent:傳遞的文本字符串; cutcount:切割字符串的長度 * @Return: List:切割字符串形成的集合,存放結(jié)果集 */ public static List<String> getContentByList(String wholecontent,int cutcount){ List<String> list = new ArrayList<String>(); //獲取完整內(nèi)容字符串的總長度 int contentlen = wholecontent.length(); //內(nèi)容截取,用內(nèi)容總長和截取長度進(jìn)行比較,無須截取的話直接插入 if (contentlen < cutcount){ list.add(wholecontent); } //內(nèi)容長度超過截取長度 else{ //定義并初始化內(nèi)容段落 String contentpart =""; //定義并初始化被截取的段落數(shù)量 int contentround =0; //開始截取的位置 int begincount = 0; //判斷截取的段落數(shù) int contentcutpart = contentlen/cutcount; int contentcutparts = contentlen%cutcount; //求余數(shù) //若余數(shù)為0,說明被整除,內(nèi)容的長度正好是截取長度的倍數(shù)。 if (contentcutparts==0){ contentround = contentcutpart; } else{ contentround = contentcutpart+1; } //循環(huán)截取內(nèi)容 for (int i = 1; i <= contentround; i++) { //如果不是最后一個截取部分 if (i != contentround){ //按照截斷長度截取內(nèi)容 contentpart = wholecontent.substring(begincount, cutcount*i); } else{ //截取最后一部分內(nèi)容 contentpart = wholecontent.substring(begincount, contentlen); } //賦值下一截取部分的起點位置 begincount = cutcount*i; list.add(contentpart); } } return list; } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實現(xiàn)統(tǒng)計在線人數(shù)功能的方法詳解
很多人在筆試或者面試中問到:現(xiàn)在要你實現(xiàn)一個統(tǒng)計在線人數(shù)的功能,你該怎么設(shè)計?不知道的朋友,這篇文章就來告訴你具體實現(xiàn)方法2022-08-08使用Rhino讓java執(zhí)行javascript的方法實例
這篇文章主要介紹了java使用Rhino執(zhí)行javascript的方法,Rhino由Mozilla開發(fā),是 JavaScript 一種基于Java的實現(xiàn)2013-12-12SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程
本文給大家介紹使用idea開發(fā)Spark SQL 的詳細(xì)過程,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-08-08基于CopyOnWriteArrayList并發(fā)容器(實例講解)
下面小編就為大家?guī)硪黄贑opyOnWriteArrayList并發(fā)容器(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11Intellij idea 代碼提示忽略字母大小寫和常用快捷鍵及設(shè)置步驟
這篇文章主要介紹了Intellij idea 代碼提示忽略字母大小寫和常用快捷鍵及設(shè)置步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02