字符串模板将字符组合 \n
、\r
和 \t
解释为控制字符。
Control Character | Meaning | 十六进制值 (UTF-8) |
---|---|---|
\n | Line feed 换行符 | 0A |
\r | Return 回车 | 0D |
\t | Tabulator 制表器 | 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 的普通字符所取代。