截取文本,区分中英文字符,中文算两个长度,英文算一个长度

/// <summary> 
  /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度
  /// </summary>
  /// <param name="str">待截取的字符串</param>
  /// <param name="length">需计算长度的字符串</param>
  /// <returns>string</returns>
  public static string GetSubString(string str, int length)
  {
    string temp = str;
    int j = 0;
    int k = 0;
    for (int i = 0; i < temp.Length; i++)
    {
      if (Regex.IsMatch(temp.Substring(i, 1), @"[\u4e00-\u9fa5]+"))
      {
        j += 2;
      }
      else
      {
        j += 1;
      }
      if (j <= length)
      {
        k += 1;
      }
      if (j > length)
      {
        return temp.Substring(0, k) + "...";
      }
    }
    return temp;
  }

时间: 2024-12-21 08:08:40

截取文本,区分中英文字符,中文算两个长度,英文算一个长度的相关文章

Android 前后两个textview 前面的一个长度自适应的解决方案

需求: 现在有水平的两个textView,前面的textView长度不固定,且要求后面的textView紧贴前面的,当前面的长度过长时显示省略号,后面的textView紧贴最右边且要全部显示. 解决: <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ll_anniversary_tab_nam

数据转换||数据判断||数据操作||日期||字符串长度区分中英文截取

MXS&Vincene  ─╄OvЁ  &0000016 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好,但是绝大部分人是死在明天晚上,只有那些真正的英雄才能见到后天的太阳. MXS&Vincene  ─╄OvЁ:We're here to put a dent in the universe. Otherwise why else even be here? 正文>>>>>

java 字符串截取类 区分中文、英文、数字、标点符号

package com.founder.fix.ims; /** * @author WANGYUTAO * 操作字符串 */ public class SubString { // public static void main(String[] args) { // String str = "我爱阿斯顿发生大法师大法上帝发誓地方时代发生大法师大法金"; // String str1 = "sdfdssfsfdsf把dsdafdafafdsfadas"; //

获得字符串实际长度,中文2,英文1 js截取字符串,中英文都能用

var GetLength = function (str) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ///<param name="str">要获得长度的字符串</param> var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { charCode = str.charCo

java代码验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数

package com.sangedabuliu.www; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UserReg { /** * 验证用户名,支持中英文(包括全角字符).数字.下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数 * @author www.sangedabuliu.com * @param userName * @return */ public

中英文字符大小和文本边界问题

中英文字符大小和文本边界问题 也不知道是楼主的问题还是CSDN的问题,楼主最近的博客在贴代码的时候出现了问题,明明把代码贴进去了,还是没有代码的效果,好吧.先这样吧,过几天再看看到底是啥情况. ASCII,UTF-8,Unicode编码下的中英文字符大小 当对字符串进行发送和接受时,编码方式很关键,服务端与客户单显然要采用相同的编码方式才行,否则一方的到的就是乱码.演示一下,看一下常见的编码格式下中英文字符的写法: using System; using System.Collections.G

截字符串(汉字一个算两个字符,英文算一个字符)

------摘自动易(RSSFeed.asp) '************************************************** '函数名:GetSubStr '作  用:截字符串,汉字一个算两个字符,英文算一个字符 '参  数:str   ----原字符串 '        strlen ----截取长度 '返回值:截取后的字符串 '************************************************** Function GetSubStr(

Lua实现计算 UTF8 字符串的长度,每一个中文算一个字符

-- 计算 UTF8 字符串的长度,每一个中文算一个字符 -- @function [parent=#string] utf8len -- @param string input 输入字符串 -- @return integer#integer  长度 计算 UTF8 字符串的长度,每一个中文算一个字符 local input = "你好World" print(string.utf8len(input)) -- 输出 7 function string.utf8len(input)

js判断输入字符串长度(汉字算两个字符,字母数字算一个):例如 要求输入12的字,24个字节

<html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie7 .pbt .ftid a { margin-top: 1px; } .cl:after { clear: both; content: ".&quo