zoukankan      html  css  js  c++  java
  • ABAP字符串(中英文混合)首字母大写

    输入混有中英文的字符串 输出该字符串英文部分首字母大写    

    输入字符串:I_DATA     输出字符串:I_DATA   
    DATA:  Z_LENG    TYPE  I      "获取输入字符串长度
           L1              TYPE  I,      "单个字符位数表示
           L2              TYPE  I      "单个字符位数表示
          L3             TYPE  I,       "单个字符所占位数值
          S               TYPE  C,       "单个字符值
          ZFLAG   TYPE  C.       
    "标识


       CLEAR :Z_LENG,L1,L2,L3,ZFLAG,S,I_DATAC,P_DATA.

       TRANSLATE  I_DATA  TO LOWER CASE.      "将字符串中字母全部转为小写
       TRANSLATE  I_DATA+0(1)  TO UPPER CASE.  "第一位置大写
       Z_LENG STRLEN( I_DATA ).           "获取字符串长度
       L1 0.
        L2 1.
       DO Z_LENG TIMES.                   "按单个字符循环字符串
         S =  I_DATA+L1(L2).
         CALL FUNCTION 'NLS_VISUAL_CHARLEN'    "函数获取每个字符串位数
         EXPORTING
           STR          = S
    *      METRICS        =
         IMPORTING
    *      LEN_MEMORY      =
           LEN_VISUAL     = L3              "L3 值为1 说明该字符是英文或数字 值为2 该字符说明为汉字
            .
         IF L3 AND ZFLAG IS INITIAL .   "若为英文 且标识为空时 将该字符大写 并更新字符串
           TRANSLATE S  TO UPPER  CASE.
           I_DATA+L1(L2= S.
           ZFLAG 'X'.                    "标识设为'X
         ELSEIF L3 <> 1.                    "若为非英文  清空标识
           CLEAR ZFLAG.
         ENDIF.
           L1  = L1 + 1.                  "取下一位
       ENDDO.
     .                    "更新后的字符串I_DATA即为输出 可自行封装成函数

  • 相关阅读:
    AS3.0函数定义的方法
    AS3.0的int uint Number的使用原则
    AS3的数据类型和定义
    把AS代码链接到fla文件
    试题
    【転載】LOOP
    【購買管理】注文請書とは? 注文書との違いと書き方、収入印紙の必要性
    共通系
    【转载】SAP ABAP开发技术总结]数据引用(data references)、对象引用(object references)
    CALL FUNCTION
  • 原文地址:https://www.cnblogs.com/WACBZWY/p/11075578.html
Copyright © 2011-2022 走看看