zoukankan      html  css  js  c++  java
  • 关于字符串截取问题简单说明

      过去常常为这么一个问题所困惑,那就是我们在平时截取字符串时:一般情况是我们就直接用.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; }

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

            小许子

  • 相关阅读:
    c# 复制整个文件夹的内容,Copy所有文件
    c# 创建文件夹
    c# 访问共享文件
    sublimit 编辑器 设置默认的编码
    WPF xml配置文件里面的大于小于号转义
    c# datatable 分组
    WPF 耗时操作时,加载loging 动画 (BackgroundWorker 使用方法)
    WPF DEV gridcontrol 自定义计算列(TotalSummary)
    postgresql 创建gin索引
    WPF DEV gridcontrol当前项的数据导出为mdb文件
  • 原文地址:https://www.cnblogs.com/xiaoXuZhi/p/3214832.html
Copyright © 2011-2022 走看看