zoukankan      html  css  js  c++  java
  • 在C#中取得指定长度的字符串

    我们知道,在C#(.Net)内部所使用Unicode来存储字符串,这样在处理字符串的时候偶尔会发生一些不爽的事情。比如,如果字符串中有中文字符,而我们想取得固定长度字符串就颇为麻烦,下面提供了一个解决方案。在这个方案中,我们实现了这么几个功能:

    取得给出字符串靠左边的子串,子串的大小为为指定长度;
    如果给出的字符串长度大于给出的长度,则在子串的末端加上“..”。
    避免出现半个汉字的情况。
    源码如下:

    private string getLeftSubString(string content, int length)
    {
    Encoding encoding = Encoding.GetEncoding("gb2312");
    StringBuilder sb = new StringBuilder();
    int totalLength = 0;
    foreach (char contentChar in content)
    {
    int size = encoding.GetByteCount(new char[] { contentChar });
    if (totalLength + size > length -2)
    {
    sb.Append("..");
    break;
    }
    sb.Append(contentChar);
    totalLength += size;
    }
    return sb.ToString();
    }
    只是这个方法的效率可能不高,欢迎大家给出更好的解决方案
  • 相关阅读:
    js继承《转》
    千分位分割正则
    所有事件失效
    658. Find K Closest Elements
    278. First Bad Version
    153. Find Minimum in Rotated Sorted Array
    11. Container With Most Water
    205. Isomorphic Strings
    75. Sort Colors
    695. Max Area of Island
  • 原文地址:https://www.cnblogs.com/hyd309/p/1285121.html
Copyright © 2011-2022 走看看