20170225 ABAP获取字符串长度/字节长度

函数YGET_CHAR_LONG:

FUNCTION YGET_CHAR_LONG.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(STRING) TYPE  STRING OPTIONAL
*"  EXPORTING
*"     VALUE(STR) TYPE  STRING
*"     VALUE(G_LONG) TYPE  I    "字符串长度
*"     VALUE(G_LONG_STR) TYPE  I"字节长度
*"----------------------------------------------------------------------

  DATA: W_UCCP TYPE I,
  W_TEMP(2) TYPE C,
  W_LEFT(100) TYPE C,
  W_LEN(10) TYPE C,
  S_LEN TYPE I
  .
  W_LEFT = STRING.

  DATA : BEGIN OF LINE,
         TEXT TYPE C,
         END OF LINE,
         ITAB LIKE TABLE OF LINE WITH HEADER LINE.

*DATA str TYPE string.
  DO.
    CALL FUNCTION ‘TEXT_SPLIT‘
      EXPORTING
        LENGTH = 2
        TEXT   = W_LEFT
      IMPORTING
        LINE   = W_TEMP
        REST   = W_LEFT.

    CALL METHOD CL_ABAP_CONV_OUT_CE=>UCCPI
      EXPORTING
        CHAR = W_TEMP
      RECEIVING
        UCCP = W_UCCP.
    W_LEN = STRLEN( W_TEMP ).
*  WRITE: /1 w_temp,
*  10 w_uccp,
*  25 w_len.
    IF W_UCCP > 256.
      CONCATENATE STR W_TEMP INTO STR.
    ENDIF.
    IF W_LEFT IS INITIAL OR SY-INDEX > 100.
      EXIT.
    ENDIF.
  ENDDO.
  IF STR IS NOT INITIAL.
    DATA:T_LEN TYPE I.
    CLEAR :  S_LEN,G_LONG_STR.
    T_LEN = STRLEN( STRING ).
    G_LONG = STRLEN( STRING ).

    S_LEN = STRLEN( STR ).
    T_LEN =  T_LEN - S_LEN .
    S_LEN = S_LEN * 2 .
    G_LONG_STR =  T_LEN + S_LEN.
*  WRITE :/,‘CHARLEN=‘ ,charlen, ‘STR= ‘,str.
  ENDIF.

ENDFUNCTION.
时间: 2024-11-08 17:03:41

20170225 ABAP获取字符串长度/字节长度的相关文章

js获取字符串的字节长度

占用3个字节的范围 U+2E80 - U+2EF3 : 0xE2 0xBA 0x80 - 0xE2 0xBB 0xB3 共 115 个 U+2F00 - U+2FD5 : 0xE2 0xBC 0x80 - 0xE2 0xBF 0x95 共 213 个 U+3005 - U+3029 : 0xE3 0x80 0x85 - 0xE3 0x80 0xA9 共 36 个 U+3038 - U+4DB5 : 0xE3 0x80 0xB8 - 0xE4 0xB6 0xB5 共 7549 个 U+4E00 -

c# 判断字符是否是全角, 获取字符串的字节数 , 获取字符串指定长度字节数的字符串

1 Encoding.Default.GetByteCount(checkString);  =2 全角 =1 半角 /// <summary> /// 获取字符串的字节长度 /// </summary> /// <param name="str"></param> /// <returns></returns> public static int GetStringByteLength(this string s

求一个字符串的字节长度

编写一个方法 求一个字符串的字节长度 假设:一个英文字符占用一个字节,一个中文字符占用两个字节 function GetBytes(str){ var len = str.length; var bytes = len; for(var i=0; i<len; i++){ if (str.charCodeAt(i) > 255) bytes++; } return bytes; } alert(GetBytes("你好,as"));

[email&#160;protected]求一个字符串的字节长度

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>@求一个字符串的字节长度</title></head><body></body> <script> function GetBytes(str) { var len = str.length; var bytes

javascript 计算字符串的字节长度

在做前端验证表单时,有时候要检测一个字符串的字节长度,保证其字节长度不超过数据库表中对应字段允许的最大长度. 不废话,上方法 1.我们通常遇到的情况都是中文+英文,所以可以判断每个字符的 Unicode 编码值,大于255,表示中文,字节应该比英文大1个字节: 1 function byteLength(str){ 2 var byteLen = str.length, len = str.length, i; 3 for(i = 0;i<len;i++){ 4 if(str.charCodeA

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

1 //计算 num 的 n 次幂 2 function numPow(num, n) { 3 if (n == 1) { 4 return num; 5 } 6 return num * numPow(num, n - 1); 7 } 8 9 //计算 n 的阶乘 10 function nFactorial(n) { 11 if (n == 1) { 12 return 1; 13 } 14 return n * nFactorial(n - 1); 15 } 16 17 //斐波那契数列,

js校验输入字符串的字节长度

//检查输入字符串字节长度 function fucCheckLength(strTemp) { var i,sum; sum=0; var length = strTemp.length ; for(i=0;i<length;i++) { if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255)) { sum=sum+1; }else { sum=sum+2; } } return sum; } 使用:

黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度

1.    使用g.MeasureString()获得 使用MeasureString测量出来的字符宽度,总是比实际宽度大一些,而且随着字符的长度增大,貌似实际宽度和测量宽度的差距也越来越大了.查了一下MSDN,找到了下面这个理由:MeasureString 方法旨在与个别字符串一起使用,它在字符串前后包括少量额外的空格供突出的标志符号使用. string str; str = "大"; Font f = new Font("SimSun", 7F, System.

关于字符串的字节长度,不是字符长度。

string s = "张"; var ss = System.Text.Encoding.UTF8.GetBytes(s).Length;//UTF8编码格式 中文三个字节.英文字母或者数字或者特殊字符 占1个字节(全角输入法 占三个字节) var ss1 = System.Text.Encoding.UTF8.GetByteCount(s); var ss2 = System.Text.Encoding.GetEncoding("GB2312").GetByte