按字节截取含有中文汉字的字符串

简介:
public static void main(String[] args) throws UnsupportedEncodingException {
		// TODO Auto-generated method stub
		// 原始字符串
		String s = "我ZWR爱JAVA";
		System.out.println("原始字符串:" + s);
		try {
		System.out.println("截取前1位:" + CutString.substring(s, 1));
		System.out.println("截取前2位:" + CutString.substring(s, 2));
		System.out.println("截取前4位:" + CutString.substring(s, 4));
		System.out.println("截取前6位:" + CutString.substring(s, 6));
		} catch (UnsupportedEncodingException e) {
		e.printStackTrace();
		}
	}

 
public static String substring(String orignal, int count) throws UnsupportedEncodingException{
		if(!"".equals(orignal) && orignal != null){
			// 将原始字符串转换为GBK编码格式
			orignal = new String(orignal.getBytes(), "GBK");
			if(count > 0 && count < orignal.length()){
				StringBuffer sb = new StringBuffer();
				char c;
				for (int i = 0; i < count; i++) {
					c = orignal.charAt(i);
					sb.append(c);
					if(isChineseChar(c)){
						// 遇到中文汉字,截取字节总数减1
						--count;
					}
				}
				return sb.toString();
			}
		}
		return orignal;
	}


 

//判断是否是一个中文汉字
	public static boolean isChineseChar(char c) throws UnsupportedEncodingException{
		return String.valueOf(c).getBytes("GBK").length > 1;
	}


 

相关文章
|
SQL 存储 监控
功能解读|快速上手 OceanBase 数据迁移服务
在上一期的 OceanBase 功能解读系列文章中,我们为大家带来了 ODC 功能解读(戳这里回顾:《OceanBase 开发者中心 ODC 功能解读》),本文将为大家分享数据迁移服务的相关内容。
1364 0
功能解读|快速上手 OceanBase 数据迁移服务
|
Linux Docker 容器
CentOS7离线安装Docker
CentOS7离线安装Docker
3459 0
|
自然语言处理 前端开发 Java
JBoltAI 框架完整实操案例 在 Java 生态中快速构建大模型应用全流程实战指南
本案例基于JBoltAI框架,展示如何快速构建Java生态中的大模型应用——智能客服系统。系统面向电商平台,具备自动回答常见问题、意图识别、多轮对话理解及复杂问题转接人工等功能。采用Spring Boot+JBoltAI架构,集成向量数据库与大模型(如文心一言或通义千问)。内容涵盖需求分析、环境搭建、代码实现(知识库管理、核心服务、REST API)、前端界面开发及部署测试全流程,助你高效掌握大模型应用开发。
1100 5
[Err] 1052 - Column ‘roleId‘ in where clause is ambiguous
这篇文章解释了SQL查询中出现"Column ‘roleId’ in where clause is ambiguous"错误的原因,即在多表查询中,如果没有明确指定表名,相同的列名在where子句中会产生歧义,并提供了修正方法,即明确指定条件中所引用的列属于哪个表。
|
人工智能 算法
AI问题之ToT结构替代了人类的哪些过程
AI问题之ToT结构替代了人类的哪些过程
|
存储 Go
go语言进阶篇——接口
go语言进阶篇——接口
184 0
|
Kubernetes Ubuntu 网络协议
Docker官方文档学习笔记(一):安装、升级、卸载Docker Desktop for Linux(和安装Docker Engine二选一,推荐Docker Engine)
Docker官方文档学习笔记(一):安装、升级、卸载Docker Desktop for Linux(和安装Docker Engine二选一,推荐Docker Engine)
1647 1
Docker官方文档学习笔记(一):安装、升级、卸载Docker Desktop for Linux(和安装Docker Engine二选一,推荐Docker Engine)
|
XML SQL Oracle
通过wm_concat 函数报错:ora06502-character string buffer to small浅谈wm_concat、Listagg、xmlagg函数的使用和结果不确定性
wm_concat、Listagg、XMLAGG ora06502-character string buffer to small varchar2类型最多支持4000字符(如果是中文会更短到2000) 那无论是wm_concat函数还是listagg函数,在处理超过4000字符(如果是中文会更短到2000)长度的时候都会报错,提供(xmlagg(xmlparse(content 合并字段||&#39;,&#39; wellformed) order by 排序字段).getclobval() )给大家使用来解决此问题!
通过wm_concat 函数报错:ora06502-character string buffer to small浅谈wm_concat、Listagg、xmlagg函数的使用和结果不确定性
|
安全 应用服务中间件 nginx
Windows使用Nginx配置本地文件代理(查看本地资源或图片)
Windows使用Nginx配置本地文件代理(查看本地资源或图片)
2086 0
Windows使用Nginx配置本地文件代理(查看本地资源或图片)
libvpx enabled but no supported decoders found
libvpx enabled but no supported decoders found
1095 0