abap 中文字符串提取和字节长度计算

在ABAP中,strlen函数无法准确计算中文字符串的字节长度。本文介绍了一个自定义函数YGET_CNCHAR_CHARLE,该函数能够正确计算包含中文字符的字符串的字节长度,并提供字符串提取功能。
摘要由CSDN通过智能技术生成

   abap 中对于字符串长度的计算一般用 strlen 函数实现。但此函数只能算出字符的个数无法计算字符串的长度,例如 'ABC你好'用此函数计算得到的值为5,显然它不是我们想要的,它的字节长度为7 。

   经过研究,我写了一个函数可以实现功能代码如下:

FUNCTION YGET_CNCHAR_CHARLE.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(STRING) TYPE  STRING 传入字符串
*"  EXPORTING
*"     REFERENCE(STR) TYPE  STRING  返回字符串
*"     REFERENCE(CHARLEN) 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'
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值