二维码

[基础语法] TRANSLATE USING 的转换规则

Twilight发表于 2014-12-18 18:01chan0815 最后回复于 2020-05-12 14:42 [复制链接] 4982 1

语法:
  1. TRANSLATE text {TO {UPPER|LOWER} CASE}
  2.              | {USING pattern}.
复制代码

  如果你使用了USING,那么text中的字符就要根据pattern 中指定的规则进行转换。Pattern必须是字符类型的数据对象并且它的内容是一个字符对的序列。从第一个字符对开始,用字符对的第一个字符遍历text,所有找到的地方都要用字符对的第二个字符替换。如果Pattern中字符对的第一个字符重复出现,则只做一次。text中已经被替换的字符在同一个TRANSLATE语句中不能被再次替换。因此,如果Pattern中字符对的第二个字符作为后来字符对的第一个字符出现,则第二个字符对只影响text中的初始字符。
   在text和Pattern中末尾的空格也要考虑进去。如果Pattern中的字符数是奇数的话,最后一个字符则被忽略。如果Pattern是一个空字符串,则没有替换发生。

例子解释:
  1. DATA text TYPE string.
  2. text = 'Barbcbdbarb'.
  3. WRITE: '转化之前:',text.
  4. TRANSLATE text USING 'ABBAabba'.
  5. WRITE: / '转化之后:',text.
复制代码

  其中
      text  =  `Barbcbdbarb` ;Pattern  =  'ABBAabba'
Pattern 中共包含8个字符 4个字符对,分别是:’AB’,’BA’,’ab’,’ba’.
  遍历步骤:
  • 'AB':搜索text中的 ‘A’用‘B’替换,text没有变化;
  • 'BA':搜索text中的‘B’用‘A’替换,(因为‘B’是第一个字符对的第二个字符,所以只影响text中的初始字符。)替换后为’Aarbcbdbarb’;
  • 'ab': 搜索text中的‘b’用‘a’替换,替换后为’Aaracadaara’;
  • 'ba': 搜索text中的‘a’用‘b’替换,(因为‘b’是第3个字符对的第二个字符,所以只影响text中的初始字符。)替换后为’Abracadabra’

执行结果:
TRANSLATE USING.jpg
回复

使用道具 举报

chan0815
thank you for share documents~~
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表