Maison >Java >javaDidacticiel >Tutoriel détaillé sur le fractionnement des chaînes de texte

Tutoriel détaillé sur le fractionnement des chaînes de texte

零下一度
零下一度original
2017-06-27 09:39:051266parcourir

Question : Dans le projet, lorsque les données enregistrées dépassent la limite de longueur de colonne du champ de la base de données, comment le résoudre ?

Une solution courante est : la troncature de chaîne et l'accès. Comme son nom l'indique, les données texte volumineuses sont interceptées en fonction de la longueur spécifiée et l'ensemble de résultats renvoyé est stocké dans une nouvelle table dans l'ordre d'interception. Et en créant un champ de type dans la nouvelle table pour identifier que le contenu intercepté dans la nouvelle table correspond au nom du champ dans l'ancienne table, les champs correspondants dans l'ancienne table ne stockent plus directement des données textuelles volumineuses, mais stockent des identifiants.

Ici, une classe d'outils est fournie pour diviser les chaînes de texte et renvoyer un ensemble de résultats de liste pour l'étape suivante.

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;
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn