一个高效的截取字符串长度方法

在 C# 中移除字符串最后一个字符的六种方法 在 C# 中,移除字符串最后一个字符的操作有很多种方法,不同的方法适用于不同的场景。在大多数情况下,Substring和Remove是最常用的方法,它们简单且高效。而适用于频繁修改字符串的场景,Take和方法则提供了更多的灵活性。为了确保程序的健壮性,我们在操作字符串时最好先进行空值和长度检查,避免潜在的异常。选择哪种方法取决于具体的使用场景和性能需求。在实际开发中,建议根据字符串操作的频率和复杂度来选择最合适的方法。 阅读详情

之前做网站里模块的列表,最开始用的截取方法很简单、用的string的length属性。

 

判断和定义的长度比较,超过则截取,并加上自定义后缀"...",没超过则完整显示。

 

这样的问题是中英文占字符不同而造成截取后长短不一。

 

后来想到的是通过css截取,给定width,并设置overflow:hidden。

 

这样截取的比较齐整勒、可是一旦中英文字符串的长度和定义width有一些误差。

 

标题中的汉字很容易被切割只显示左侧一部分勒,显示上也不够,所以就想到改善最初的截取方法。

 

改自优快云里的一个帖子。

 

代码如下:

 

 

原帖地址:http://topic.youkuaiyun.com/u/20090402/10/e5339a9c-5d02-4620-bd43-d98c8285f30a.html?44404

超实用c#按字节截取长度(原创) 1、 当字符串全部为单字节字符时,则可以用SubString方法截取指定长度即可。 2、 当字符串全部为双字节字符时,则只需要用SubString方法截取指定长度的一半 3、 当字符串为单字节双字节混合时,则我们可以用折中这样的方法来处理。 例如我们有一个长度为350字节的字符串。而我们需要截取100个字节,则我们进行如下操作: 先用SubString 方式取得100/2个字符。然后获取这50个字符的字节数。 当50个字符=100个字节时,则直接返回结果。如果还不到100个字节,则继续用SubString方法截取 (100-(50个字符的字节数))/2 的字符。如此循环直到剩下的字节数为1 或者0的时候,则停止。当剩余一个字节时,再进行判断下一个字符是否是单字节字符,如果是单字节,则把这个字符一起做为结果返回。如果双字节字符,则将下一个字符放弃,直接返回已经截取的字符串的长度。 用此方法为指数形式截取,一般截取长字符串时只需进行几步操作即可。 比如截取10000个字符,则进行最多12+1次操作即可 立即下载

相关推荐

[Vue][面试]谈谈你对MVC、MVP和MVVM的理解

谈谈你对MVC、MVP和MVVM的理解 答题思路:此题涉及知识点很多,很难说清楚,说透彻,因为MVC,MVP这些我们前端程序员自己甚至都没用过。但是恰恰反映了前端这些年从无到有, 从有到优的变迁过程,因此沿此思路回答将十分清除。 Web1.0时代 在web1.0时代,并没有前端的概念。开发一个web应用多数采用ASP.NET/Java/PHP编写,项目通常由多个aspx/jsp/php文件构成,每个文件中同时包含了HTML、CSS、JavaScript、C#/Java/PHP代码, 系统整体架构可能如下图所

你好,欢迎光临! 723

C#字符串操作:拼接、截取、分割等高效处理方法

在C#编程中,字符串操作是不可避免的一部分。无论是拼接多个字符串,还是截取子字符串,抑或是按照特定规则进行分割,都需要对字符串进行处理。本篇博客将介绍一些在C#中高效处理字符串的方法,包括拼接、截取、分割等操作。掌握这些方法,将能够提高您的代码效率和可维护性。

故事不长丨的博客 9782

【复现论文】Looking here or there? Gaze Following in 360-Degree Images

论文:Looking here or there?

RichardoMu的博客 1129

C#几个经常用到的字符串截取

一、 1、取字符串的前i个字符 (1)string str1=str.Substring(0,i); (2)string str1=str.Remove(i,str.Length-i); 2、去掉字符串的前i个字符 string str1=str.Remove(0,i); string str1=str.SubString(i); 3、从右边开始取i个字符: string str1...

weixin_33691700的博客 538

WRF-BEM相关参数说明

本参数适用于WRF-BEM模拟武汉市气候。

m0_60013472的博客 1896

Nestjs框架: 集成 Prisma

NestJS官方文档提供了两种数据库相关的内容:Techniques下的数据库板块和Recipes下的具体数据库集成方案。本文以Prisma为例,演示了如何集成Prisma到NestJS项目中。首先创建NestJS项目并安装Prisma,配置MySQL数据库连接。通过Prisma CLI初始化项目、定义数据模型并生成迁移文件。接着创建Prisma模块和服务,配置Prisma客户端连接数据库。最后在控制器中注入PrismaService实现数据查询。整个过程包含了Docker启动MySQL、Prisma模型定

Wang的专栏 1293

截取汉字超出 的部分...表示

[code=".NET.CS"]/// /// 将指定字符串按指定长度进行剪切, /// /// 需要截断的字符串 /// 字符串的最大长度 /// 超过长度的后缀 /// 如果超过长度,返回截断后的新字符串加上后缀,否则,返回原字符串 p...

奋 斗 ing 266

CentOS7无外网环境下MySQL8.0完整离线部署指南

本文详细介绍了在CentOS7无外网环境下,如何通过MySQL8.0二进制包进行完整离线部署。指南涵盖了从环境准备、依赖安装、用户与目录创建,到数据库初始化、服务配置及远程访问设置的全过程,并提供了关键的避坑技巧,帮助企业运维人员在内网环境中高效、稳定地搭建MySQL数据库服务。

xxx12的博客 1029

C#截取指定长度字符超出部分以"..."代替,用于处理过长的标题

public static string StringTruncat(string oldStr, int maxLength, string endWith) { // 判断原字符串是否为空 if (string.IsNullOrEmpty(oldStr)) return oldStr + endWith; // 返回字符串的长度...

weixin_30731287的博客 190

基于Simulink的BCH码编解码仿真建模示例

BCH码是一类循环码,能够纠正一定数量的随机错误。灵活性:可以根据需要选择不同的码长和纠错能力。高效性:适用于短码长和中等码长的场景,广泛用于卫星通信、存储系统等。实现简单:编码和解码过程可以通过硬件或软件高效实现。在本示例中,我们将使用MATLAB/Simulink中的和模块来完成BCH码的编解码操作,并通过仿真验证其误码率(BER)性能。通过本指南,我们介绍了如何基于Simulink搭建一个BCH码的编解码模型,并进行了仿真以验证其性能。背景介绍:理解BCH码的基本原理及其在通信系统中的应用。

xiaoheshang_123的博客 191

YOLO26改进策略【卷积层】| CVPR 2024 可变形卷积 v4(DCNv4)无界权重提表达 + 线程合并降冗余,强化模型收敛速度

DCNv4(Deformable Convolution v4)是一种专为广泛视觉应用设计的高效算子,它对DCNv3进行了关键改进,有效解决了DCNv3存在的速度慢和表达能力受限等问题。

Limiiiing的博客 694

C# 字符串长度不够补零

int i=10;方法1:Console.WriteLine(i.ToString("D5"));方法2:Console.WriteLine(i.ToString().PadLeft(5,'0'));//推荐方法3:Console.WriteLine(i.ToString("00000")); 在 C# 中可以对字符串使用 PadLeft 和 PadRight 进行轻松地补位。 P...

weixin_33682790的博客 1411

Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行

Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行

9794

lua中文字符串长度计算和截取

中文都是对于128的,所以用下边的函数可以计算出中文字符串长度,计算100k长度效率可以接受 function length(str)   local _,n=str:gsub('[\128-\255]','')   return #str-n/2   end 复制代码 对于截取10k以内速度还可以,100k需要大约2秒,不能使用了

yeyuehunluhongyu的博客 1518

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

c#完美截断字符串代码(中文+非中文)

using System.Text.RegularExpressions; namespace System {     ///     /// 字符串助手类     ///     public static class StringHelper     {         #region 字符串扩展方法         #region 获取字符串长度(中英混合-字

记得微笑的专栏 1702

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java 截取字符串最后几位

private static String RightSubstring(String s, int num) {   String snew = StringUtils.trimToEmpty(s);   if(snew == null)     return "";   else if(snew.length()>num)     return snew.substring(snew

lyc888的专栏 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

2710. 移除字符串中的尾随零 Easy

整数 "51230100" 有 2 个尾随零,移除并返回整数 "512301"。整数 "123" 不含尾随零,返回整数 "123"。,请你以字符串形式返回不含尾随零的整数。给你一个用字符串表示的正整数。

珞米的博客 491

【Java】建立一个0-10M的字符串消息

直接用StringBuilder,它的append方法方便快速构建字符串。 StringBuilder sb1=new StringBuilder(); for(int i=0;i<1024*1024*10;i++){ sb1.append('a'+""); } 取消息时 String str=sb1.tostring(); 取1M str.substring(0,

程序猿开发日志【学习永无止境】 1256

C#中高效的截取字符串长度的方法

<br />之前做网站里模块的列表,最开始用的截取方法很简单、用的string的length属性。<br />判断和定义的长度比较,超过则截取,并加上自定义后缀"...",没超过则完整显示。<br />这样的问题是中英文占字符不同而造成截取后长短不一。<br />后来想到的是通过css截取,给定width,并设置overflow:hidden。<br />这样截取的比较齐整勒、可是一旦中英文字符串的长度和定义width有一些误差。<br />标题中的汉字很容易被切割只显示左侧一部分勒,显示上也不够,所以就想

体会技术牛人的高傲 3412

js 字符串截取方法汇总

一、使用 slice() 截取 1,函数说明 slice()方法可通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。 语法如下: string.slice(start, end);start(必需):规定从何处开始选取。如果是负数,那么它规定从字符串尾部开始算起的位置。也就是说,-1指最后一个字符,-2指倒数第二个字符,以此类推。参数说明: end(可选):规定从何处结束选取,即结束处的字符下标。如果没有指定该参数,那么截取的字符串包含从start到结束的所...

weixin_42499566的博客 8万+

shell 截取字符串的方法

shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法。 ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} 上面4种可以用来进行缺省值的替换。 ${#parameter} 上面这种可以获得字符串的长度。 ${parameter%word} 最小限度从后面截取word ${parameter%%word} 最大限度从后面截取word ${parameter#word} 最小.

小小的木头人的博客 4203

shell截取字符串方法

shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法。 ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} 上面4种可以用来进行缺省值的替换。 ${#parameter} 上面这种可以获得字符串的长度。 ${parameter%word} 最小限度从后面截取wo...

赶路人儿 7642

JS字符串截取方法汇总(slice、substring、substr等)

在开发中常常会需要截取字符串,而JavaScript提供了很多种方法实现截取操作。本文对各种方法做个整理,供大家参考。 一、使用 slice() 截取 1,函数说明 slice()方法可通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。语法如下: 1 stringObject.slice(start, end) ...

王俊的博客 13万+

python按照指定字符或者长度截取字符串

1.截取指定位置字符串   Python字符串可以理解为一个数组,获取某一部分的可以使用 str[beginIndex:endPosition],其中str为需要截取的字符串,beginIndex为需要截取的第一个字符的下标,endPosition为截取字符最后一个的位置,注意是下标和位置(下面示例),下标+1=位置;beginIndex,endPosition都可以不写,不写的情况默认第一个或者最后一个; 正常示例: a = "Hello" print "a[...

KingOfOnePiece的博客 7167

JS截取字符串的方法

其中,截取字符串是前端开发者常用的功能之一,无论是处理用户输入、解析数据还是动态生成内容,都可能需要对字符串进行截取。截取字符串指的是从原字符串中提取出一个子串,根据指定的起点和终点(可选)获取新的字符串。希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。另外,值得注意的是,在性能方面,不同的方法可能会有不同的表现。而在需要处理特定格式的数据时,正则表达式的灵活性就显得尤为重要了。也是用来截取字符串的方法,但它接受的是开始和结束的位置,而不是长度。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1292

shell 截取字符串

shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法。 1、下面4种可以用来进行缺省值的替换。 ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} 2、下面这种可以获得字符串的长度。 ${#parameter} 3、下面4个用来截取字符串。 ${para...

weixin_41565755的博客 1759
上一篇: 关于GUID的一点了解
下一篇: string.PadLeft的用法(来自项目中的一个错误)
nextuntil
博客等级 码龄17年 40粉丝 22原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值