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

TI毫米波雷达人体生命体征(呼吸、心跳)信号提取算法(IWR6843ISK+DCA1000EVM) 本篇内容介绍的算法主要为传统的提取算法,但可实现在1m内呈现良好的检测效果,能够提取出非常可观的呼吸和心跳波形,但在超出1m的距离后便不适用这个算法了。远距离检测呼吸和心跳始终是这个领域一个很大的挑战。要实现远距离检测可在提取相位信号、分离呼吸和心跳信号上进行改进处理,例如线性解调提取相位、改进的VMD分离呼吸和心跳算法。 阅读详情

关于用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
字符串
 
YOLOv5源码逐行超详细注释与解读(2)——推理部分detect.py 全网最详细的YOLOv5之推理部分detect.py源码逐行注释,近四万字的超详细讲解!小白入门必看! 阅读详情

相关推荐

DFT实训教程笔记2(bibili版本)- Scan synthesis practice

文章目录Scan synthesis practice 本博文是博主记录DFT实训教程的笔记版本,此笔记并没有对所有的知识进行记录,仅仅以自身的认知水平,来记录了一些部分笔记并加上了自己的理解。 Scan synthesis practice How to design scan clock structure? 假设一块chip里面有好几十个clock domain,如果每一个clock domain都用一个scan clock虽然会非常清晰,但是IO数目肯定不够用。 clock group: 1、no

ciscomonkey的博客 9082

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

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

csy92620的专栏 2498

xlinx项目系列之基于zynq-7020ISP图像处理

本Demo基于zynq-7020(正点原子启明星+OV5640+4.3'800x480)实现了ISP图像处理(将ov5640的isp关闭,在7020上实现ISP功能),输出到LCD和HDMI,软件基于SDK裸机开发,2592x1944@15fp。位置: xil_ip_repo/xil_isp_lite_1.0。项目获取链接:2.基于zynq-7020实现ISP图像处理。位置: xil_ip_repo/xil_vip_1.0。

JY6669991010的博客 2636

SpringBoot实现多线程

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

zbzcDZF的博客 1万+

MIMO技术入门

MIMO:多天线技术,发射端和接收端有多个天线(注意:并不是指多个天线板,而是多套振子,每一套是一个独立的天线。) 4G:2、8天线 5G:4、64天线(64T64R) 手机也是多天线 MIMO实现效果的分类: 1)空间分集 。2)空间复用。3)波束赋形。 空间分集(space diversity) 作用:提升接收质量 利用多个天线发射或者接收一个数据流,避免单个信道衰落对整个链路的影响。(比如你的耳机坏了一只并不影响另一只) 空间复用(space multiplexing) 作用:提升速率 利

About1129的博客 2876

LilyPad三色LED共阳极控制:从原理到Arduino编程实战

RGB LED作为可编程光源的核心组件,通过红、绿、蓝三原色的加色混合原理,能够生成丰富的色彩。其内部结构主要分为共阳极和共阴极两种类型,这决定了驱动电路的设计和编程逻辑。在电子织物和可穿戴设备领域,掌握RGB LED的控制技术对于实现动态光效和交互反馈至关重要。本文以LilyPad三色LED为例,深入解析其共阳极特性,并详细演示如何结合Arduino进行PWM编程,从而精准控制颜色与亮度,为智能服装、互动艺术装置等项目提供可靠的照明解决方案。

weixin_30237719的博客 607

发现网络的隐藏角落:深入探索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

STM32F407+HAL库+W5500实现TCP通讯 个人项目总结

推荐阅读此博客 cv即可成功首先需要一个可以进行串口调试的工程,方便进行调试。1.在W5500官网移植库文件重点是Ethernet这个文件夹将里面的 socket.c,socket.h,wizchip_conf.c,wizchip_conf.h,还有根据W5500文件夹里的w5500.c和w5500.h移植到自己的工程里面。然后再创建一个.c和.h文件 我的叫w5500_port_hal.c 和w5500_port_hal.h 记得将.h文件链接到工程里。

a234abr的博客 2247

截取字符串的三种方法

字符串截取

lwaner的博客 1万+

剪映自动化工具来了:AI帮你自动剪辑成片

🎬分享一个剪映自动化剪辑工具!AI 自动帮你完成从写文案、配音、加字幕、选音乐、上特效到最终导出的整套流程🎈

XiaoqiangClub的博客 855

问题解答:如何不通过修改底层数据库表的方式,给数据库对应的数据结构,增添新的字段?

现在需要将这张表里的内容读取到 ABAP 内表里,并且针对每个行项目,增加一个新的列字段,我随便举个例子,这个列字段名称叫 LENGTH,值为 OBJ_NAME 字段的长度,使用。最笨的办法就是下面这样定义一个新的类型,这个类型的每个字段名称,都来自数据库表 TADIR 的同名字段,在末尾再增添自定义字段 length.其实我们是做 ALV 输出,只需要 ABAP 内表变量的类型,包含 TADIR 数据库表的全部字段,再加上新的 LENGTH 字段即可。这相当于多了一个中间层,没办法直接被 ALV 处理。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 481

按长度截取字符串

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

weixin_30905981的博客 500

MATLAB - Gazebo 联合仿真 —— 使用 UR10 机械臂检测和采摘水果

本示例演示如何在 Gazebo 物理模拟器中设置 Universal Robotics UR10 机械臂和仿真环境。您需要配置一个机器人从树上摘苹果的仿真环境。本示例演示如何利用这些工具箱,使用 Universal Robotics UR10 机械手模拟机器人检测并从树上摘取苹果。Robotics System Toolbox™ - 在 Simulink® 和 Gazebo 中对机械手进行建模、规划和模拟。Navigation Toolbox™ - 生成三维环境的占用图。

机器人控制与仿真应用 4182

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

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

晖轩大师 2221

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

全角字符串的截取方法

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

绿色天空 614

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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、付费专栏及课程。

余额充值