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

  • 相关阅读:
    洛谷 P1064 金明的预算方案
    洛谷 P2015 二叉苹果树
    洛谷 P1471 方差
    洛谷 P1198 [JSOI2008]最大数
    js字符串中的比较类以及截取类substring实例
    字符串indexOf()的用法
    fromCharCode返回字符串以及字符串加密
    字符串获取类、封装检测数字的方法
    原生js解决倒计时结束图片抖动之后移动消失的效果
    原生js解决图片渐渐变透明的效果
  • 原文地址:https://www.cnblogs.com/WACBZWY/p/11075578.html
Copyright © 2011-2022 走看看