Processing Character Strings

Objective

After completing this lesson, you will be able to アプリケーションプログラムでの文字列の処理

文字列関数

文字列の処理

文字列の処理

パイプシンボルを使用して、文字列テンプレートを定義することができます。

文字列テンプレートは、結果タイプ string の ABAP 式です。文字列テンプレートは、任意の読込オペランド位置 (値割当の右側など) で使用することができます。

文字列テンプレートの先頭と末尾はパイプ記号 ( | | ) です。最も単純な文字列テンプレートには、リテラルテキストしか含まれていません。このフォームでは、文字列テンプレートは文字列リテラルと実際には変わりません。

文字列テンプレートと文字列リテラルを区別するのは、式を埋め込む機能です。埋込式は、中括弧 ( { } ) のペアで囲まれた ABAP 式です。実行時に、ABAP によって埋込式が評価され、結果が文字列に変換されます。結果では、この文字列が (周囲の波括弧とともに) 埋め込み式を置き換えます。

注記

ABAP 構文では、開括弧の後に少なくとも 1 つの空白、閉括弧の前に少なくとも 1 つの空白が必要です。

1 つの文字列テンプレートに複数の埋込式を含めることができます。

中括弧内には、任意の種類の ABAP 式 (変数、リテラル、または算術式) を配置することができます。

文字列テンプレートの使用例

結合文字列

演算子 && を使用して文字列を連結することができます

連結演算子 && を使用して、複数の項目を結合することができます。データオブジェクトと文字列式の任意の組合せを結合することができます。

式の上にある変数 (Part1 と Part2) は、スペースなしまたは他の区切り記号で結合されます。スペースまたは別の区切記号/文字が必要な場合は、上の図に示すように、式の一部として自分自身で挿入する必要があります。

文字列の例を使用して、ユーザは名のみを出力できるように氏名を分割することができます。

キーワード SPLIT を使用して、指定された文字の文字列を複数の部分文字列に分割することができます。

文字列の処理

ビジネスシナリオ

顧客の氏名はありますが、名を表示する必要があります。ABAP コードを登録してフルネームを名と姓に分割し、名をコンソールに出力します。

注記

この演習問題では、XX は各自の番号を示します。

ステップ

  1. クラス ZCL_S4D100_XX_COND から ZCL_S4D100_XX_CASE を登録します。

    1. Project ExplorerCLASS ZLCOAL を展開します。

    2. パッケージ ZS4D100_XX を右クリックし、NewABAP Class を選択します。

    3. 名称ZCL_S4D100_XX_CHAR と入力します。

    4. Description:、String と入力します。

    5. 追加を選択して、インタフェース IF_OO_ADT_CLASSRUN を追加します。

    6. OK を選択します。

    7. Next を選択します。

    8. 移送依頼を選択し、Finish を押します。

    9. Activate (Ctrl+F3) を押します。

  2. if_oo_adt_classrun~main のコードを CASE 命令ではなく IF 命令を使用して変更し、c_number0 が初期値であるかどうかをチェックします。

    1. 以下のコードを使用して、METHOD IF_OO_ADT_CLASSRUN~MAIN. を実装します。

      Code Snippet
      1234567
      DATA: lv_full_name TYPE string VALUE 'Stan Wilson', lv_first_name TYPE string, lv_last_name TYPE string. SPLIT lv_full_name AT '' INTO lv_first_name lv_last_name. out->write( |user { lv_first_name }| ).
  3. プログラムを有効化して、テストします。

    1. Activate (Ctrl+F3) を押します。

    2. F9 を押して、クラスを実行します。

    実践する