代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
按指定长度和编码拆分中英混合字符串
作者:
dezai
/ 发布于
2014/9/11
/
438
/** * 按指定长度和编码拆分中英混合字符串 * @param text 被拆分字符串 * @param length 指定长度,即子字符串的最大长度 * @param encoding 字符编码 * @return 拆分后的子字符串列表 * @throws UnsupportedEncodingException */ public static ArrayList split(String text, int length, String encoding) throws UnsupportedEncodingException { ArrayList texts = new ArrayList(); int pos = 0; int startInd = 0; for(int i=0;text!=null&&i<text.length();) { byte[] b = String.valueOf(text.charAt(i)).getBytes(encoding); if(b.length>length) { i++; startInd = i; continue; } pos += b.length; if(pos>=length) { int endInd; if(pos==length) { endInd = ++i; } else { endInd = i; } texts.add(text.substring(startInd, endInd)); pos = 0; startInd = i; } else { i++; } } if(startInd<text.length()) { texts.add(text.substring(startInd)); } return texts; } /** * 指定长度按UTF-8编码拆分中英混合字符串,即一个非ASCII码长度为3 * @param text 被拆分字符串 * @param length 指定长度,即子字符串的最大长度 * @return */ public static ArrayList split(String text, int len) { try { return split(text, len, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return null; } } public static void main(String[] args) { System.out.println(split("中华人21民共a和国1", 0)); System.out.println(split("中华人21民共a和国1", 1)); System.out.println(split("中华人21民共a和国1", 2)); System.out.println(split("中华人21民共a和国1", 4)); System.out.println(split("中华人21民共a和国1", 8)); System.out.println(split("中华人21民共a和国1", 16)); System.out.println(split("中华人21民共a和国1", 32)); System.out.println(split("中华人民共和国", 0)); System.out.println(split("中华人民共和国", 1)); System.out.println(split("中华人民共和国", 2)); System.out.println(split("中华人民共和国", 4)); System.out.println(split("中华人民共和国", 8)); System.out.println(split("中华人民共和国", 16)); System.out.println(split("中华人民共和国", 32)); System.out.println(split("zhrmghgzhrmghg", 0)); System.out.println(split("zhrmghgzhrmghg", 1)); System.out.println(split("zhrmghgzhrmghg", 2)); System.out.println(split("zhrmghgzhrmghg", 4)); System.out.println(split("zhrmghgzhrmghg", 8)); System.out.println(split("zhrmghgzhrmghg", 16)); System.out.println(split("zhrmghgzhrmghg", 32)); } Output: [] [2, 1, a, 1] [21, 1] [中, 华, 人2, 1民, 共a, 和, 国1] [中华, 人21民, 共a和, 国1] [中华人21民, 共a和国1] [中华人21民共a和国1] [] [] [] [中, 华, 人, 民, 共, 和, 国] [中华, 人民, 共和, 国] [中华人民共, 和国] [中华人民共和国] [] [z, h, r, m, g, h, g, z, h, r, m, g, h, g] [zh, rm, gh, gz, hr, mg, hg] [zhrm, ghgz, hrmg, hg] [zhrmghgz, hrmghg] [zhrmghgzhrmghg] [zhrmghgzhrmghg]
试试其它关键字
混合字符串
拆分字符串
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
dezai
贡献的其它代码
(
1065
)
.
双色球
.
列出所有物理网络适配器
.
快乐数的 Python 实现
.
计算当月还剩天数
.
猜属相
.
二十四小时时钟
.
每日一语
.
很酷的日历
.
超长日历表单
.
最简单的时钟
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3