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即为输出 可自行封装成函数

  • 相关阅读:
    关于Vue的路由、脚手架笔记
    个人Vue-1.0学习笔记
    评论发布信息可插入QQ表情
    21 九宫格布局
    20 随机验证码&发表评论
    19 表单验证&上传图片验证
    18 百度换肤&千千音乐盒
    17 JS-图片切换PLUS&关闭小广告
    16 JS应用-图片切换&衣服相册
    15 JS应用-todolist任务
  • 原文地址:https://www.cnblogs.com/WACBZWY/p/11075578.html
Copyright © 2011-2022 走看看