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;
}
}
0
投稿
猜你喜欢
- 本文实例讲述了Hibernate环境搭建与配置方法。分享给大家供大家参考,具体如下:1.下载hibernate jar包:hibernate
- 本文实例为大家分享了java实现简单的图书管理系统的具体代码,供大家参考,具体内容如下一、项目分布Book类: 定义了书的一些属性(书名,作
- 前言smart-doc 是一款同时支持 java restful api 和 Apache Dubbo rpc 接口文档生成的工具,smar
- 这篇文章主要介绍了Java日期与时间类原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参
- 效果如下:鄙人虽然开发WPF有些时间,但之前一直是一些简单Template和Style改改之类的工作,并没有深入研究过。此次为了完成工作,首
- 本文实例讲述了Java获得当前时间前指定几个小时具体时间的方法。分享给大家供大家参考,具体如下:package getBeforeHourD
- 不过在实际的工作中,很少会直接用到它。通常都是用的spring-quartz组件,直接通过配置,让spring框架来自动装配如下就是spri
- 因为公司现在换成了nacos,所以自己写了demo学习一下。结果第一步就走不下去。在使用nacos-config读取nacos配置时。发现b
- 参考链接IDEA 2020.2.3版本IntelliJ IDEA 2020.2.3永久激活码(亲测有效)IDEA 2019.3版本Intel
- 我们平时在开发系统时,一般我们的系统工程会被分为多个模块,一个原因是方便协同开发,系统间解耦,另外一个很重要的原因是:别的系统需要依赖我们系
- 1.spring boot * 默认有:HandlerInterceptorAdapterAbstractHandlerMappingUse
- ES 简介Elasticsearch 是一个基于 Lucene 实现的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 REST
- 我记得最开始接触多进程,多线程这一块的时候我不是怎么理解,为什么要有多线程啊?多线程到底是个什么鬼啊?我一个程序好好的就可以运行为什么要用到
- 前段时间摸索了java调用matlab东西,不说学的有多深,也算有结果了,达到目的了。也即用java程序可以调用matlab中函数了。&nb
- 本文实例讲述了C#实现对数组进行随机排序类。分享给大家供大家参考。具体如下:这个一个扩充C#随机数发生器的类,可以随机生成指定范围的数字,可
- Spring Cloud feign GET请求无法用实体传参代码如下:@FeignClient(name = "eureka-c
- 本文实例为大家分享了基于servlet实现统计网页访问次数的具体代码,供大家参考,具体内容如下一、基础知识(1)ServletContext
- 有时候,我们在同一个activity里面有很多fragment,在横竖屏的时候,有些fragment要求重新加载数据,有些不需要,如何简单控
- 一、使用 System.Xml.Serialization类1、定义元数据引入System.Xml.Serialization命名空间。XM
- 一、循环结构循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适