java分割文本字符串的方法
作者:一只笨笨鸟 发布时间:2023-11-13 03:52:24
标签:java,分割,字符串
问题:在项目中,当保存数据超过数据库字段列长度限制时,如何解决?
一种常见的解决办法是:截串存取。顾名思义,就是对大文本数据按指定长度进行截取,返回结果集依截取顺序存储在新表中。并通过在新表中创建一个type字段来标识新表中截取的内容对应旧表中的字段名,而旧表中相应的字段不再直接存放大文本数据,而是存放标识符。
这里,提供一种工具类,用来分割文本字符串,返回List结果集供下一步使用。
public class StringUtil {
/**
* @Name: getContentByList
* @Description: 字符串切割
* @Author: 张(作者)
* @Version: V1.00 (版本号)
* @Create Date: 2017-6-26(创建日期)
* @Parameters: wholecontent:传递的文本字符串;
cutcount:切割字符串的长度
* @Return: List:切割字符串形成的集合,存放结果集
*/
public static List<String> getContentByList(String wholecontent,int cutcount){
List<String> list = new ArrayList<String>();
//获取完整内容字符串的总长度
int contentlen = wholecontent.length();
//内容截取,用内容总长和截取长度进行比较,无须截取的话直接插入
if (contentlen < cutcount){
list.add(wholecontent);
}
//内容长度超过截取长度
else{
//定义并初始化内容段落
String contentpart ="";
//定义并初始化被截取的段落数量
int contentround =0;
//开始截取的位置
int begincount = 0;
//判断截取的段落数
int contentcutpart = contentlen/cutcount;
int contentcutparts = contentlen%cutcount; //求余数
//若余数为0,说明被整除,内容的长度正好是截取长度的倍数。
if (contentcutparts==0){
contentround = contentcutpart;
}
else{
contentround = contentcutpart+1;
}
//循环截取内容
for (int i = 1; i <= contentround; i++) {
//如果不是最后一个截取部分
if (i != contentround){
//按照截断长度截取内容
contentpart = wholecontent.substring(begincount, cutcount*i);
}
else{
//截取最后一部分内容
contentpart = wholecontent.substring(begincount, contentlen);
}
//赋值下一截取部分的起点位置
begincount = cutcount*i;
list.add(contentpart);
}
}
return list;
}
}


猜你喜欢
- 引言Java反射机制是一个非常强大的功能,在很多大型项目比如Spring, Mybatis都可以看见反射的身影。通过反射机制我们可以在运行期
- MS的CMD命令行是一种重要的操作界面,一些在C#中不那么方便完成的功能,在CMD中几个简单的命令或许就可以轻松搞定,如果能在C#中能完成C
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:public class RoundImageView extends ImageVie
- 出现问题描述: 1.Could not get a resource from the pool, Connection refused:
- 前言之前有人提到过取绝对值时 直接写三目运算符比用Mathf.Abs()效率高 没觉得能高太多今天测了一下 真是不测不知道 一测吓一跳 直接
- 在公司的项目中用到了分布式锁,但只会用却不明白其中的规则所以写一篇文章来记录使用场景:交易服务,使用redis分布式锁,防止重复提交订单,出
- 一、String类概述概述java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"abc"
- List 的方法列表方法名功能说明ArrayList()构造方法,用于创建一个空的数组列表add(E e)将指定的元素添加到此列表的尾部ge
- 自定义缓存 - ehcacheEhcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器1.导包&l
- 1.循环遍历private void GetControls(Control fatherControl){ Co
- 概述:@Valid是使用Hibernate validation的时候使用@Validated是只用Spring Validator校验机制
- 本文实例讲述了C#判断访问来源是否为搜索引擎链接的方法。分享给大家供大家参考。具体分析如下:这段代码通过获取UrlReferrer判断访客是
- 一、安装JDK、SDK、NDK无论是用C#和VS2015开发Androd App还是用Java和Eclipse开发Androd App,都需
- 本文实例讲述了Java实现特定范围的完数输出算法。分享给大家供大家参考,具体如下:题目内容:一个正整数的因子是所有可以整除它的正整数。而一个
- RestTemplate 请求url中包含百分号 会被转义成25最初使用RestTemplate 进行远程调用方法如下:private St
- 1:先检查 字段有没有加上注解 @TableField(fill = FieldFill.INSERT_UPDATE)@TableField
- 循环依赖所谓循环依赖就是多个Bean之间依赖关系形成一个闭环,例如A->B->C->...->A 这种情况,当然,最
- spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置。Sp
- BufferedReaderBufferedReader 是缓冲字符输入流。它继承于Reader。 BufferedReader 的作用是为
- Linux下JDK安装教程,具体内容如下1、下载 JDK Linux 版本(注意看自己安装 Linux 系统的位数)oracle 官网下载地