ABAP 语法控制字符: 换行...\n 回车...\r 制表符...\t

100 阅读2分钟

字符串模板将字符组合 \n\r\t 解释为控制字符。

Control Character Meaning十六进制值 (UTF-8)
\nLine feed 换行符0A
\rReturn 回车0D
\tTabulator 制表器09

根据当前代码页,其十六进制值将插入到字符串模板创建的字符串中,而不是控制字符。

提示

  • 如果要将控制字符作为文本文本包含在内,则可以通过在它前面加上转义字符 \ 来删除其特殊含义。
  • 字符串模板中的控制字符替换了类 CL_ABAP_CHAR_UTILITIES 的某些属性的使用。

带字符串处理实用程序的类 CL_ABAP_CHAR_UTILITIES 类提供了用于字符串处理的属性和方法。 该类的所有组件都是静态和公共的,属性是只读的,并在类的构造函数中初始化。有关该类属性和方法的详细信息,请参见类文档。 下面几行演示了包含控制字符的 CL_ABAP_CHAR_UTILITIES 类属性可以被字符串模板中的控制字符表示所替代。

ASSERT cl_abap_char_utilities=>newline          = |\n|.
ASSERT cl_abap_char_utilities=>horizontal_tab = |\t|.
ASSERT cl_abap_char_utilities=>cr_lf              = |\r\n|.

示例

下面的示例用代码生成了一个字符串模板的结果表示法,其中包含代码页 UTF-8 中三个可能的控制字符,即 0A0D09。十六进制值 0A、0D 和 09 分别代表换行、回车和制表符。

FINAL(code) =
cl_abap_conv_codepage=>create_out( )->convert( |\n\r\t| )。

下面的示例将在 textedit 控件中生成三行输出。

cl_demo_text=>display_string( |1\n2\n3| ).

可执行示例:

* Public class definition
CLASS cl_demo_str_template_ctrl_char DEFINITION
  INHERITING FROM cl_demo_classrun
  PUBLIC
  CREATE PUBLIC.
  PUBLIC SECTION.
    METHODS main REDEFINITION.
ENDCLASS.

* Public class implementation
CLASS cl_demo_str_template_ctrl_char IMPLEMENTATION.
  METHOD main.

    out->write(
      |First line.\r\ttab\ttab\ttab\n\ttab\ttab\ttab\rLast line.| ).

  ENDMETHOD.
ENDCLASS.

使用 CL_DEMO_OUTPUT 类输出包含字面文本和控制字符的字符串模板。文本输出采用换行和制表符格式。

提示

请注意,此处显示的输出不是字符串的直接显示,而是在浏览器中显示的 HTML 表示法。在 HTML 表示法中,控制字符被适合 HTML 的普通字符所取代。