前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于字符串截取问题简单说明

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

作者头像
小小许
发布2018-09-20 17:03:20
5580
发布2018-09-20 17:03:20
举报
文章被收录于专栏:angularejs学习篇angularejs学习篇

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

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

  实现方法函数:

代码语言:javascript
复制
/// <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;
}

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

        小许子

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-07-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档