java分割文本字符串的方法
問(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)分割文本字符串,返回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ú)須截取的話直接插入
if (contentlen < cutcount){
list.add(wholecontent);
}
//內(nèi)容長(zhǎng)度超過(guò)截取長(zhǎng)度
else{
//定義并初始化內(nèi)容段落
String contentpart ="";
//定義并初始化被截取的段落數(shù)量
int contentround =0;
//開始截取的位置
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í)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Security框架:如何使用CorsFilter解決前端跨域請(qǐng)求問(wèn)題
這篇文章主要介紹了Security框架:如何使用CorsFilter解決前端跨域請(qǐng)求問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
springboot實(shí)現(xiàn)瀏覽器截屏并添加文字
大家好,本篇文章主要講的是springboot實(shí)現(xiàn)瀏覽器截屏并添加文字,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02
java線程池ThreadPoolExecutor的八種拒絕策略示例詳解
ThreadPoolExecutor是一個(gè)典型的緩存池化設(shè)計(jì)的產(chǎn)物,因?yàn)槌刈佑写笮?當(dāng)池子體積不夠承載時(shí),就涉及到拒絕策略。JDK中已預(yù)設(shè)了?4?種線程池拒絕策略,下面結(jié)合場(chǎng)景詳細(xì)聊聊這些策略的使用場(chǎng)景以及還能擴(kuò)展哪些拒絕策略2021-11-11
SpringBoot實(shí)現(xiàn)api加密的示例代碼
在項(xiàng)目中,為了保證數(shù)據(jù)的安全,我們常常會(huì)對(duì)傳遞的數(shù)據(jù)進(jìn)行加密。本文主要介紹了SpringBoot實(shí)現(xiàn)api加密的示例代碼,感興趣的小伙伴們可以參考一下2021-07-07

