字符串截取及中文处理方法

 /**
	 * 从原字符串根据最大字节长度以及需要保留的字节长度,获取子字符串,“最大字节长度”用于判断原字符串字节长度是否超过该长度,如果超过则截取“需要保留的字节长度”子串并补充“...”返回,如果未超过,则直接返回原字符串;<br>
	 * 这里考虑到其中有中文的情况,如果最后一个字节为中文的一半,则去掉该字节,显示字节长度为“需截字节长度-1”;<br>
	 * 如果输入需要截取的字节长度超过了当前传入字符串的字节长度,则返回全部字符串,不报异常;<br>
	 * 如果需要截取的字节长度小于当前字符串的长度,则在考虑中文情况下截取指定的字符串,并补充“...”返回。<br>
     * @param str					原字符串
     * @param maxBytesLength		最大字节长度(如果原字符串的字节长度超过该长度,就需要做字符截取处理,否则直接返回原字符串)		
     * @param keepBytesLength		需要保留的字节长度
     * @param needMore				是否需要补充"..."
     * @return
     * @throws UnsupportedEncodingException
     */
    public static String subString(String str, int maxBytesLength,int keepBytesLength, boolean needMore) {
		int chineseByteNum = 0;
		byte bt[] = null;
		try {
			bt = str.getBytes(CHARSET_GBK);
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(bt.length<=maxBytesLength) return str;
		for (int i = 0; i < keepBytesLength; i++) {
			if (bt[i] < 0) {//中文
				chineseByteNum++;
			}
		}

		if (!(chineseByteNum % 2 == 0)) {//在截取的范围内中文刚好截取完,不存在半个中文的情况
			keepBytesLength--;
		}

		StringBuffer substrx=new StringBuffer("");
		try {
			substrx = substrx.append(new String(bt, 0, keepBytesLength,CHARSET_GBK));
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if(needMore){
			substrx.append("...");
		}
		return substrx.toString();

	}

 

福彩快乐8智能选号系统研究 本文介绍了一款福彩快乐8智能选号系统的开发过程。系统首先通过数据采集获取历史开奖数据,作为分析的基础。随后,对采集的数据进行深入分析,以识别可能的模式和趋势。基于这些分析,系统能够智能预测未来的开奖号码,如2025129期的预测。最后,通过模拟兑奖功能,用户可以直观地看到预测结果的实际效果。文章鼓励感兴趣的读者点赞并领取源代码,以便自行探索和使用该系统。 阅读详情

相关推荐

《阵列信号处理及MATLAB实现》阵列响应矩阵(均匀线阵、均匀圆阵、L型阵列、平面阵列和任意阵列)

《阵列信号处理及MATLAB实现》内容总结,如需阅读更详细内容请购买正版书籍。

APPLECHARLOTTE的博客 1万+

java 截取字符串 中文_java按字节截取带有汉字的字符串的解法(推荐)

由于接口使用的oracle字段长度为固定字节数,然后传进来的字符串估计比数据库字段的总字节数要大,那么截取小于数据库字节数的字符串。自己参考网上的例子,整了个递归调用就可以了,因为截取的字符字节长度必须小与数据库的字节长度,即如果最后一个字符为汉字,那么只能去掉往前截取。/*** 判断传进来的字符串,是否* 大于指定的字节,如果大于递归调用* 直到小于指定字节数 ,一定要指定字符编码,因为各个系统...

weixin_42121272的博客 2756

『言善信』Fiddler工具 — 1、Fiddler介绍与安装

文章目录1、Fiddler简介2、Fiddler功能3、Fiddler工作原理4、Fiddler安装 1、Fiddler简介 Fiddler是强大的抓包工具之一,它能记录所有客户端和服务器之间的HTTP和HTTPS请求,是web调试的利器。 Fiddler是位于客户端和服务端之间的HTTP代理,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。 Fiddler可以抓取支持HTTP代理的任意程序的数据包,如果要抓取https会

繁华似锦Fighting 1463

实现中文字符串截取无乱码的方法

小伙伴们大家好,使用substr()截取中文字符乱码的问题怎么解决呢?看下面的方法: 方法一: 使用php内置函数mb_substr(); mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字符数 ...

从2017开始记录起的博客 5716

Halcon Socket TCP通讯:从算子调用到工业视觉系统集成

本文详细介绍了Halcon Socket TCP通讯在工业视觉系统中的应用与优化技巧。从基础算子调用到高并发处理,再到与PLC、机器人及MES系统的集成实战,提供了全面的解决方案和性能优化建议,帮助开发者高效实现工业视觉系统的通讯需求。

weixin_33502772的博客 248

Mplus实战:随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用

本文深入探讨了随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用,通过Mplus实战演示了模型设定、结果解读及进阶建模策略。RI-CLPM能有效区分个体间差异和个体内变化,适用于追踪青少年手机使用与抑郁症状等研究。文章还提供了样本量规划、模型比较和结果可视化等实用技巧,助力研究者避免常见陷阱。

weixin_29220405的博客 369

截取中文字符串

/** * 截取中文字符串 */ function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') { if($code == 'UTF-8'){ $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-

igo9go_zq的博客 511

手把手教你用 Cursor 写一个完整的 Web 应用(含前后端 + 部署)

本文介绍如何利用Cursor AI工具从零开发一个完整的全栈待办事项Web应用。文章针对开发者常见痛点——无法独立完成项目闭环,提供了一套AI驱动的全栈开发范式。通过Vue3+Node.js+MySQL技术栈,全程由Cursor自动生成项目架构、前后端代码、数据库设计,并解决联调、部署等关键问题。重点展示了如何用AI完成:项目规划与架构设计、后端接口开发、前端页面实现、跨域联调、打包优化及云端部署全流程。该方法将传统需要3-5天的开发工作压缩至1小时内完成,产出规范可上线的项目,特别适合想突破"碎

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 633

字符截取,解决中文的截取问题

php 1publicfunctioncutStr($string,$start,$sublen,$extstring='',$code='UTF-8') 2{ 3if($code=='UTF-8') 4{ 5$pa="/[\x01-\x7f]|[\xc2-\xdf][\x80-\...

weixin_34257076的博客 126

第八章 GPU Scheduler 分析:8.3 drm_sched_entity — 调度实体

本文介绍了DRM GPU调度器中的drm_sched_entity结构,它作为用户提交命令进入调度器的提交通道,解决了归属、排序和公平性问题。文章首先分析了命令提交的归属需求,然后详细阐述了entity的核心模型,包括其职责、进程映射关系和核心字段。接着说明了用户态提交进入内核后的关键节点路径,以及entity内部的FIFO语义和激活机制。entity通过组织同一context的命令提交包为FIFO队列,使调度器能够在多个entity之间进行优先级和公平性调度,同时保证同一提交通道的顺序执行。

图形/计算GPU的驱动与虚拟化技术分享园地 643

再不入坑就晚了,深度神经网络概念大整理,最简单的神经网络是什么样子?

再不入坑就晚了,深度神经网络概念大整理,最简单的神经网络是什么样子?

我是香菜 3万+

php 截取4个中文,PHP中文字符串截取的四个函数

本节内容:中文字符串截取例1,普通中文字符串的截取复制代码 代码示例:function sysSubStr($string,$length,$append = false){if(strlen($string) <= $length ){return $string;}else{$i = 0;while ($i < $length){$stringTMP = substr($strin...

weixin_31514087的博客 230

NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案

本文主要介绍了NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.解决方案,希望能对使用jupyter notebook的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

PHP截取中文字符串的方法

PHP截取中文字符串方法总结。 程序一:PHP截取中文字符串方法 由于网站首页以及vTigerCRM里经常在截取中文字符串时出现乱码(使用substr)。 一个比较好的php截取中文字符串方法,在此与大家共享。 function msubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len;

toplover2的linux学习博客 807

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉...

// 我的想法是如果截取字符串的位置是半个中文字符的话 那我就多截取一个字节(可能会抛出异常) // 如果两个字符串的长度相等说明该位置是半个中文字符应该去掉 public String split(String str, int bytes) { String result = ""; if (str == null || "".equals(str) || bytes < ...

dapiji的专栏 155

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C#截取字符串长度方法

方法一、 /// <summary> /// 截取指定长度的字符串 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="len">要截取的长度&lt...

amay1992的博客 863

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PHP截取中文字符串方法总结

PHP截取中文字符串有时会出现乱码 使用一下三种方式解决乱码: <?php @header('Content-type: text/html; charset=UTF-8'); $arr = "sa撒的发dfa多少sfd看sdf得12上24飞452机.@$#^辣^&%椒粉b"; /*************************************...

aimen2015的博客 211

PHP中文处理中文字符串截取(mb_substr)和获取中文字符串字数函数

@[toc](PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数) 一、中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字数 $encoding,网页编码,如utf-8,GB2312,GBK 实例: &lt...

徊忆羽菲 3365

mysql 中文截取_中文字符串截取

java多字节字符串按字节截取算法思路1.先按照实际要截取的字节长度,复制一份字节数组2.转换回字符串,计算字符长度resLen,并按这个长度截取原字符串3.计算截取的字符串的字节数是否等于需求长度len,相等则直接返回,不相等,则在resLen的基础上减1再截取,则为需要的结果此算法截取的结果为向前截取,即保证最终截...文章胡昜2015-08-14592浏览量前端文本多行省略的完美解决方案在前...

weixin_34916178的博客 2883

[转]PHP截取中文字符串方法大全

r_length)) { $temp_str=substr($sourcestr,$i,1); $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码 if ($ascnum&gt;=224) //如果ASCII位高于224, { $returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,將3个连续的字符计为单个字符 $i=$i

gxl_ct001的专栏 156

写一个方法 String left(String str ,int n) str字符串中可能包含中文,中文是2bytes

写一个方法  String left(String str ,int n) str字符串中可能包含中文,中文是2bytes,实现的功能是 如:“中abc12” n=4  则该方法返回“中ab”  “中abc国a” n=6 则返回“中abc”中文是一半时不返回解法一:public String left(String str,int n){ String restr="";

2623

php 截取字符串的方法,php截取字符串方法有哪些

php截取字符串方法有:1、使用substr函数截取字符串;2、使用mb_substr函数截取字符串;3、使用自定义的“function mysubstr($str, $start, $len){}”方法截取字符串等等。本文操作环境:windows7系统、PHP7.1版,DELL G3电脑php截取字符串几个实用的函数1.substr(源字符串,其实位置[,长度])-截取字符串返回部分字符串...

weixin_32503361的博客 3600

java 中文怎么截取_求截取带中文的字符串的java方法。

展开全部楼主你好,很高兴能回答你这个很有挑战性的问题,首先我谈谈我对上面9个例e69da5e6ba9062616964757a686964616f31333262373265子的理解,即这个方法应该实现的功能:这个方法与JDKString原有的方法substring是有区别的,在这个方法里,一个中文汉字相当于占2个英文字符的位置。而且根据方法传入的参数pStart和pEnd在返回相应的子字符串c...

weixin_36146690的博客 2648

如何截取含有中文的字符串

package substr; import java.io.UnsupportedEncodingException; /** * 判断是否是一个中文汉字 * * @param c * 字符 * @return true表示是中文汉字,false表示是英文字母 * @throws UnsupportedEncodingExc...

studyjavalm1017的专栏 373

java 中文怎么截取_Java截取字符串的函数且保证中文截取正常

SUBSTRING 返回字符、binary、text或 image表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™数据类型的更多信息,请参见数据类型。 语法 SUBSTRING ( expressionJava截取字符串的函数且保证中文截取正常截取字符...

weixin_35892779的博客 1327

php去掉前几位数,php怎么截取数据前几位数

php截取数据前几位数的方法是:

weixin_29468561的博客 433
上一篇: eclipse常用10快捷键
下一篇: Apache服务器配置全攻略(转载)
冯立彬
冯立彬 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域
博客等级 码龄21年 5458粉丝 593原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值