关于字符串截取问题简单说明

  过去常常为这么一个问题所困惑,那就是我们在平时截取字符串时:一般情况是我们就直接用.substring()来截取,这样做有一个很大的问题(汉子和字母数字的截取问题),一个汉字代表两个字符,而一个字母和数字代表一个字符,这样通过substring()来截取就有会导致因为数字和字母截取后的长度会不理想。

  为了完成这个问题,我们在对字符串的截取是我们不是按照长度进行截取,而是按照byte进行截取。这样无论是数字字母还是汉字截取的长度都会很整齐。

  实现方法函数:

/// <summary>
/// 返回指定的字符串
/// </summary>
/// <param name="Length">要显示字符长度</param>
/// <param name="target">要截断的字符串</param>
/// <param name="sign">拼接的字符</param>
/// <returns>string</returns>
public static string GetdisplayStr(int Length, string target, string sign)
{

if (target == null)
{
return "";
}

//if (target.Length < Length)
//{
// return target;
//}
int iIndex = 0;

string result = "";
char[] chart = target.ToCharArray();
for (int i = 0; i < Length*2; iIndex++)
{
if (iIndex >= target.Length)
break;

if (System.Text.UnicodeEncoding.Unicode.GetBytes(chart[iIndex].ToString())[1] == byte.Parse("0"))
{
//char的byte数组由[0][1]高低位组成    数字、字母的平[1]为0
result += chart[iIndex];
i++;
}
else
{
result += chart[iIndex];
i += 2;
//result += sign;
//break;
}
}
//添加未显示完成标识
if(iIndex < chart.Length)
result += sign;

return result;
}

看完以后 ,希望能够给你带来帮助。

        小许子

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术墨客

JVM与字节码——2进制流字节码解析 原

本位将详细介绍字节码的2进制结构和JVM解析2进制流的规范。规范对字节码有非常严格的结构要求,其结构可以用一个JSON来描述:

922
来自专栏我是攻城师

Java基础类String了解一下

当你路过一些商场或者地铁口的时候,有没有被千篇一律的"xx健身,了解一下" 所烦到。

2265
来自专栏Python小屋

面向对象程序设计中“超类”和“子类”概念的来历

众所周知,在面向对象程序设计中,子类从超类中继承数据成员和成员方法,然后在此基础上再根据实际需要进行扩展并增加属于子类的数据成员和成员方法。也就是说,子类的对象...

2814
来自专栏开发与安全

从零开始学C++之从C到C++(一):const与#define、结构体对齐、函数重载name mangling、new/delete 等

一、bool 类型 逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假),存储字节数在不同编译系统中可能有所不同,VC++中为1个字节。 声明方式...

1920
来自专栏null的专栏

挑战数据结构与算法面试题——统计上排数在下排出现的次数

题目来源“数据结构与算法面试题80道”。在此给出我的解法,如你有更好的解法,欢迎留言。 ? 分析: 本题应该是一个确定的问题,即上排的是个数是题目中给定的...

3206
来自专栏软件开发 -- 分享 互助 成长

堆排序

堆排序是对简单选择排序算法的一种改进,在每次选择最小记录的同时,根据比较结果对其他记录做出相应的调整。 堆是具有下列性质的完全二叉树:每个节点的值都大于(小于)...

1805
来自专栏大数据钻研

JavaScript 知识点整理

JavaScript是按照ECMAScript标准设计和实现的,后文说的JavaScript语法其实是ES5的标准的实现。 先说说有哪些基础语法? 最基础语法有...

2195
来自专栏Java帮帮-微信公众号-技术文章全总结

第十三天 面向对象-final static 匿名对象内部类包代码块【悟空教程】

1434
来自专栏数据结构与算法

洛谷P3377 【模板】左偏树(可并堆)

题目描述 如题,一开始有N个小根堆,每个堆包含且仅包含一个数。接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y...

2714
来自专栏Web行业观察

说说这个this啊

上述代码中foo()不带任何修饰函数引用进行调用的,因此只能使用默认绑定,无法应用其他规则。 像这种独立函数调用是最常见的方式。值得一提的是在严格模式下,全局对...

1229

扫码关注云+社区

领取腾讯云代金券