按指定长度截取字符串,考虑全角半角

Cadence Virtuoso实战:NMOS差分放大器设计与SPICE仿真全解析 本文详细解析了使用Cadence Virtuoso设计NMOS差分放大器并进行SPICE仿真的全流程。从基础设计要点、原理图绘制到工作点分析与性能调优,提供了实用的设计技巧和常见问题解决方案,帮助工程师高效完成模拟集成电路设计。重点介绍了差分放大器的关键参数设置、饱和区优化及版图设计注意事项,适用于ADC、DAC等高性能电路开发。 阅读详情

关于用Java来截取指定长度的字符串,我在网上看到很多帖子和方法,大都是说用substring(),但是如果考虑到全角半角的话,这是怎么也达不到期望值的。因为之前自己也用到过,所以把自己整理好的一些东西拿出来,希望能和大家分享下。如果还有更好更简洁的方法,望大侠们指点一二。

注:所有测试都是基于该值已通过必须输入的检查。
1.subByStrLenth() 在不考虑全角的情况下,即假定该字符串都是半角的。
2.subByFullWidth() 如果已确保该值都是由全角字符,即字符都是全角且指定长度是大于0的偶数的情况下。
3.subByStrByte() 考虑全角半角的截取,且舍掉半个汉字后,长度不足的情况下是否要在右边补空格。
// 按指定的长度来截取字符串,不管全角半角,一个字符一个长度。
public static String subByStrLength(String value, int length) {

	return value.length() > length ? new String(value.substring(0, length)) : value;
}

// 按指定的长度来截取字符串,前提是字符串是全角的,指定长度是大于0的偶数。
public static String subByFullWidth(String value, int length) {

	return value.getBytes().length > length ? new String(value.getBytes(), 0, length) : value;
}

// 按指定的长度下,考虑字符的全角半角,且当舍掉最后半个汉字后,长度不足的情况下是否要在右边补空格。
public static String subByStrByte(String value, int length, boolean paddingSpace) {

	String valueTemp = "";

	// 指定的长度下,考虑字符的全角半角,最后的汉字。
	if (value.getBytes().length > length) {
		for (char c : value.toCharArray()) {
			if (valueTemp.getBytes().length <= length) {
				valueTemp += c;

				if (valueTemp.getBytes().length == length) {
					break;

				} else if (valueTemp.getBytes().length > length) {
					char[] charTemp = valueTemp.toCharArray();
					valueTemp = "";

					for (int i = 0; i < charTemp.length - 1; i++) {
						valueTemp += charTemp[i];
					}

					break;
				}
			}
		}
	}

	// 指定的长度下,长度不足的情况是否要在右边补空格。

	if (paddingSpace) {
		StringBuffer valueBuffer = new StringBuffer(valueTemp);
		for (int i = 0; i < length - valueTemp.getBytes().length; i++) {
			valueBuffer.append(" ");
		}

		return valueBuffer.toString();
	}

	return valueTemp;
}

// 字符串的截取测试
public static void main(String[] args) {

	String str1 = "字符串的截取";
	String str2 = "字符串的截取test";

	System.out.println(subByStrByte(str2, 7, true));
	System.out.println(subByStrByte(str2, 7, false));

	System.out.println(subByStrLength(str2, 7));
	System.out.println(subByFullWidth(str1, 6));
}

第一个输出结果是带空格的字符串“字符串 ”。
运行结果:
字符串 
字符串
字符串的截取t
字符串
 
Eclipse在Mac上报错JNI_CreateJavaVM?可能是你的JDK架构搞错了(附Adoptium JDK下载指南) 本文深入解析了Mac(尤其是Apple Silicon芯片)上Eclipse启动时出现“JNI_CreateJavaVM”错误的根本原因,即JDK架构(aarch64与x86_64)不匹配。文章提供了详细的诊断步骤,并推荐通过下载并配置Eclipse Adoptium提供的aarch64版本JDK来彻底解决问题,同时附上清晰的配置指南。 阅读详情

相关推荐

《解锁GCC版本选择的奥秘:从入门到精通》

GCC 版本的选择是一项复杂而关键的决策,犹如一场精心策划的战略布局,贯穿于软件开发的整个生命周期。从项目需求与兼容性的深度考量,到性能与稳定性的权衡抉择,再到硬件与系统适配的精准对接,每一个环节都紧密相连,相互影响。在游戏开发行业,对性能的极致追求促使开发者青睐较新的 GCC 版本,以实现更流畅的游戏体验和更震撼的视觉效果;科学计算领域则依赖于 GCC 版本对复杂数学运算的高效优化,以应对大规模数据处理的挑战;嵌入式开发行业因硬件资源的限制和对稳定性的严苛要求,通常选择经过长期验证的稳定版本;

zheng_ruiguo的专栏 1417

Java 按指定长度截取字符串,考虑全角半角

于用 Java 来截取指定长度的字符串,我在网上看到很多帖子和方法,大都是说用 substring() ,但是如果考虑到全角半角的话,这是怎么也达不到期望值的。因为之前自己也用到过,所以把自己整理好的一些东西拿出来,希望能和大家分享下。如果还有更好更简洁的方法,望大侠们指点一二。   注:所有测试都是基于该值已通过必须输入的检查。 1.  subByStrLenth() 在不考虑

csy92620的专栏 2498

IROS 2025机器人技术解析:从诡异设计到硬核应用

机器人技术正从传统的结构化环境应用,迈向复杂非结构化场景的深度交互。其核心原理在于通过仿生设计、多模态感知与智能控制算法,赋予机器人类似生物的适应性与交互能力。这一技术演进的价值在于突破传统机器人在极端环境、精密操作和自然交互中的瓶颈。例如,结合深度强化学习的全身动力学控制,使机器人能在废墟、管道等复杂地形中自主导航;而软体机器人技术则通过材料变形实现安全、柔顺的抓取操作。这些技术最终服务于极端环境巡检、精密装配和高端陪护等刚性应用场景,推动机器人从功能实现迈向与环境、人进行深度、智能交互的新阶段。

weixin_34006468的博客 449

SpringBoot实现多线程

原文链接 代码地址:https://github.com/Snowstorm0/learn-async 1 线程同步和异步 线程同步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为同步机制存在,A只能等待下去。耗时较长,安全性较高。 线程异步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为没有同步机制存在,A线程仍然请求的到。 一个进程启动的多个不相干的进程,他们之间的相互关系为异步;同步必须执行到底后才能执行其他操作,异步可同时执行。 多个线程执行的时候需要同步,如果是单线程则不需要同

zbzcDZF的博客 1万+

ur3手眼标定+realsenseL515

知乎 csdn

AI_future的博客 978

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接

目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC

wwplh5520370的博客 1万+

发现网络的隐藏角落:深入探索Subby——极速子域名枚举工具

发现网络的隐藏角落:深入探索Subby——极速子域名枚举工具 subby An uber fast and simple subdomain enumeration tool using DNS and web requests with support for detecting wildcard DNS record...

gitblog_00022的博客 1241

Cadence Virtuoso实战:用gm/Id方法搞定折叠式共源共栅放大器设计(附完整仿真流程)

本文详细介绍了在Cadence Virtuoso设计环境中,运用gm/Id方法高效设计折叠式共源共栅放大器的完整实战流程。该方法通过工艺特征曲线,将设计指标映射到晶体管尺寸与偏置,有效克服深亚微米工艺下传统方法的不足。文章以TSMC 180nm工艺为例,从指标拆解、参数查找、电路搭建、仿真验证到问题调试,提供了清晰、可复现的操作指南,并探讨了自动化脚本与版图考量,助力工程师和学生提升模拟IC设计效率与成功率。

jwt8token的博客 647

截取字符串的三种方法

字符串截取

lwaner的博客 1万+

【人工智能】国产开源大模型聊天 AquilaChat 快速开始上手实战&效果评测

Aquila语言大模型在技术上继承了GPT-3、LLaMA等的架构设计优点,替换了一批更高效的底层算子实现、重新设计实现了中英双语的tokenizer,升级了BMTrain并行训练方法,在Aquila的训练过程中实现了比Magtron+DeepSpeed zero-2将近8倍的训练效率。Aquila语言大模型是在中英文高质量语料基础上从0开始训练的,通过数据质量的控制、多种训练的优化方法,实现在更小的数据集、更短的训练时间,获得比其它开源模型更优的性能。

AI天才研究院 2万+

《AgentScope-Java 深入浅出教程》第2章 环境搭建与第一个智能体

创建// 【导入说明】/*** 时间相关工具类* 工具类是普通的 Java 类,通过注解声明为工具。* 智能体可以根据用户需求自动调用这些工具。*/// 【工具定义】获取当前时间@Tool(name = "get_current_time", // 工具名称:LLM 看到的名称description = "获取指定时区的当前时间" // 工具描述:帮助 LLM 理解何时使用// 【参数定义】// @ToolParam 的 name 属性是必需的!

步子哥的博客 417

按长度截取字符串

/// <summary> /// 截取字段长度 /// </summary> /// <param name="str">需要截取的字符串</param> /// <param name="Len">最大长度限制</param> ...

weixin_30905981的博客 500

ENVI_基于无人机数据的果树提取与相对健康监测

一、数据处理 1.计算植被指数VDVI或GDVI:Band Math / Spectral Indices 2.制作掩膜:ROI——Threshold——Subset 二、单地块果树提取 1.绘制感兴趣区shp 2.确定果树提取参数:Count Crops 3.输出果树矢量文件:Convert Crops To Shapefile 4.果树相对健康程度分析:Calculate Crop Me...

提供技术服务、资源分享 429690771 1399

区分全角和半角的字符串指定长度截取(或填充)

///         /// 获取制定字符串的前L位字符,注:半角字符只算半个字符         ///         /// 制定的字符串         /// 长度         /// 超出长度时追加的字符         ///         public static string SubGBString(string s, int l, string a

晖轩大师 2221

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

假人有限元模型

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

全角字符串的截取方法

公司做的是日本人项目,平时经常需要对一些字符串的值进行指定位数的截取,里面又经常是一些全角、半角混合的类型,当截不予到指定位数刚好是一个全角时,就不得不考虑怎么处理了,通常是少截取一位,将全角以后的全去掉。 所以,每次用到每次都要找老的项目,比较烦琐,还好最近不是太忙,赶快整理一下,方便以后使用。 public static String fromatStringRightJIS(String...

绿色天空 614

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

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

C#截取定长字符串(全角觠混合串)

使用如下函数便好,其实inputString是源串,len是要截取的长度(以半角计算)。 原理很简单,就是逐个遍历源串中的字符,如果该字符是全角,则认为它占两个长度,如果是半角,就认为它占一个长度。 public static string CutString(string inputString, int len) { string tempString = ...

lovecontry 77

如何利用PHP来截取一段中文字符串而不出现乱码

/*功能:截取全角和半角混合的字符串以避免乱码参数: $str_cut 需要截断的字符串 $length  允许字符串显示的最大长度*/function substr_cut($str_cut,$length = 30){  if (strlen($str_cut) >; $length){  for($i=0; $i < $length; $i++)

hexiankun的专栏 772

VB按字节截取字符串

内容绝大部分来自互联网,出处请百度。 全角半角皆适用 1 Public Function bSubstring(ByVal s As String, ByVal length As Integer) As String 2 Dim bytes As Byte() = Text.Encoding.Unicode.GetBytes(s) 3 ...

weixin_34198881的博客 509

【Android】全角字符半角字符工具类

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34010949的博客 321

js中按字节截取字符串

功能:在网页中显示过长的字符串,截取指定长度,结尾添加省略号。 例如: testStr = "测试1字符串"; autoAddEllipsis(testStr, 1); // "测..." autoAddEllipsis(testStr, 2); // "测..." autoAddEllipsis(testStr, 3); // "测..." autoAddEllipsis(tes...

tjmljw的专栏 448

java下取得字符串像素宽度例子_JAVA下取得字符串像素宽度例子

我们通常要对字符串进行截取,以保证在画面上显示不全的地方Layout整齐划一,Web画面中尤其如此。但由于全角、半角、字符宽度不同而导致使用普通的substring()方法并不能满足要求。所以,就google一下,参考了各种资料后,做了如下例子。// 英文字体使用Arial,普通模式,大小12(单位是磅,中文中的“一号”,“二号”等这样的分类不支持。)private static Font f =...

weixin_36259438的博客 206

c# 判断字符是否是全角, 获取字符串的字节数 , 获取字符串指定长度字节数的字符串...

1 Encoding.Default.GetByteCount(checkString);  =2 全角 =1 半角 /// &lt;summary&gt; /// 获取字符串的字节长度 /// &lt;/summary&gt; /// &lt;param name="str"&gt;&lt;/param&gt; ...

weixin_33918114的博客 277
上一篇: Java 按指定长度截取字符串,考虑全角半角
下一篇: JS ==和===运算符的比较
TpingSpace
博客等级 码龄15年 1粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值