15

是否有另一种方法可以在 ABAP 中连接而不是使用CONCATENATE关键字

使用示例CONCATENATE

DATA:
  foo    TYPE string,
  bar    TYPE string,
  foobar TYPE string.

  foo = 'foo'.
  bar = 'bar'.

  CONCATENATE foo 'and' bar INTO foobar SEPARATED BY space.
4

5 回答 5

29

您可以(从 ABAP 7.02 开始)用于&&连接两个字符串。

Data:
foo    TYPE string,
bar    TYPE string,
foobar TYPE string.

foo = 'foo'.
bar = 'bar'.

foobar = foo && bar.

这也适用于字符文字

foobar = 'foo' && 'bar'.

为了保留空格,请使用这种名为“文本字符串文字”的字符文字,它用两个重音符(U+0060) 定义:

foobar = foo && ` and ` && bar
于 2013-09-18T09:18:06.817 回答
14

是的,您可以使用ABAP 7.02中引入的字符串模板

以下示例:

DATA:
  foo    TYPE string,
  bar    TYPE string,
  foobar TYPE string.

  foo = 'foo'.
  bar = 'bar'.

  foobar = |{ foo } and { bar }|.
于 2013-09-17T21:34:12.147 回答
5

除了 Eduardo Copat 提到的字符串表达式之外,有时使用该MESSAGE ... INTO ...语句是明智的——尤其是在文本应该被翻译的情况下。在某些翻译中,变量相对于彼此的位置必须交换,而且翻译文本通常You cannont combine &1 with &2.比单独的部分You cannot combine和更容易翻译with

于 2013-09-18T06:35:25.817 回答
1

您可以使用 && 或 |{}{}| 符号。

您不需要在对象之间输入和输入,如果您给空间,它将把它当作空间或其他任何东西。

"no space:
foobar = |{ foo }{ bar }|.
"1 space:
foobar = |{ foo } { bar }|.

等等

于 2019-02-11T12:27:43.893 回答
-1
DATA: v_line TYPE string.


CONCATENATE 'LINE1' 'LINE2' 'using cl_abap_char_utilities=>NEWLINE' INTO v_line SEPARATED BY cl_abap_char_utilities=>NEWLINE.

CALL FUNCTION 'LXE_COMMON_POPUP_STRING'
  EXPORTING
    text          = v_line
          .

CLEAR: v_line.

CONCATENATE 'LINE3' 'LINE4'  'cl_abap_char_utilities=>HORIZONTAL_TAB' INTO v_line SEPARATED BY cl_abap_char_utilities=>HORIZONTAL_TAB.

CALL FUNCTION 'LXE_COMMON_POPUP_STRING'
  EXPORTING
    text          = v_line
          .

CLEAR: v_line.

CONCATENATE 'LINE5' 'LINE6'  'cl_abap_char_utilities=>VERTICAL_TAB' INTO v_line SEPARATED BY cl_abap_char_utilities=>VERTICAL_TAB.

CALL FUNCTION 'LXE_COMMON_POPUP_STRING'
  EXPORTING
    text          = v_line
          .


CLEAR: v_line.

CONCATENATE 'LINE7' 'LINE8'  'cl_abap_char_utilities=>CR_LF' INTO v_line SEPARATED BY cl_abap_char_utilities=>CR_LF.

CALL FUNCTION 'LXE_COMMON_POPUP_STRING'
  EXPORTING
    text          = v_line
          .
于 2019-06-03T11:30:50.647 回答