Processing Character Strings

Objective

After completing this lesson, you will be able to zeichenketten in einem Anwendungsprogramm verarbeiten

Zeichenkettenfunktionen

Zeichenketten verarbeiten

Verarbeitung von Strings

Das Pipe-Symbol kann verwendet werden, um ein Zeichenketten-Template zu definieren.

Zeichenketten-Templates sind ABAP-Ausdrücke vom Ergebnistyp „string". Sie können Zeichenketten-Templates an jeder beliebigen Position eines Leseoperanden verwenden, z.B. auf der rechten Seite einer Wertzuweisung.

Ein Zeichenketten-Template beginnt und endet mit einem Pipe-Symbol ( | | ). Das einfachste Zeichenketten-Template enthält lediglich literalen Text. In dieser Form unterscheidet sich ein Zeichenketten-Template nicht wirklich von einem Zeichenkettenliteral.

Was ein Zeichenketten-Template von einem Stringliteral unterscheidet, ist die Fähigkeit, Ausdrücke einzubetten. Ein eingebetteter Ausdruck ist ein ABAP-Ausdruck, der von einem Paar geschweifter Klammern ( { } ) umgeben ist. Zur Laufzeit wertet ABAP den eingebetteten Ausdruck aus und übersetzt das Ergebnis in eine Zeichenkette. Im Ergebnis ersetzt diese Zeichenfolge den eingebetteten Ausdruck (zusammen mit den umgebenden geschweiften Klammern).

Notiz

Die ABAP-Syntax erfordert mindestens ein Leerzeichen nach der öffnenden Klammer und mindestens ein Leerzeichen vor der schließenden Klammer.

Ein Zeichenketten-Template kann mehr als einen eingebetteten Ausdruck enthalten.

Innerhalb der geschweiften Klammern können Sie beliebige ABAP-Ausdrücke einfügen: Variablen, Literale oder arithmetische Ausdrücke.

Beispiele für die Verwendung von Zeichenketten-Templates

Verknüpfungszeichenfolge

Der Operator && kann zur Verkettung von Strings verwendet werden

Sie können Felder mit dem Verkettungsoperator && verbinden. Sie können eine beliebige Kombination aus Datenobjekten und Zeichenkettenausdrücken verbinden.

Die Variablen oben (Teil 1 und Teil 2) des Ausdrucks werden ohne Leerzeichen oder ein anderes Trennzeichen zwischen ihnen verknüpft. Wenn Sie Leerzeichen oder ein anderes Trennzeichen oder Zeichen benötigen, müssen Sie daran denken, es selbst als Teil des Ausdrucks einzufügen, wie in der obigen Abbildung dargestellt.

Wenn Sie das Zeichenfolgenbeispiel verwenden, möchten Benutzer möglicherweise ihren vollständigen Namen aufteilen, sodass Sie nur den Vornamen ausgeben können.

Das Schlüsselwort SPLIT kann verwendet werden, um eine Zeichenfolge an einem bestimmten Zeichen in mehrere Teilzeichenfolgen aufzuteilen.

Zeichenketten verarbeiten

Unternehmensszenario

Sie haben den vollständigen Namen eines Kunden, müssen jedoch den Vornamen anzeigen. Legen Sie den ABAP-Code an, um den vollständigen Namen in Vorname und Nachname aufzuteilen, und geben Sie den Vornamen an die Konsole aus.

Notiz

In dieser Übung bezieht sich XX auf Ihre Nummer.

Schritte

  1. Legen Sie die Klasse ZCL_S4D100_XX_COND für ZCL_S4D100_XX_CASE an.

    1. Expandieren Sie CLASS ZLCOAL im Projekt-Explorer.

    2. Klicken Sie mit der rechten Maustaste auf das Paket ZS4D100_XX, und wählen Sie NewABAP Class.

    3. Geben Sie als NamenZCL_S4D100_XX_CHAR ein.

    4. Geben Sie als Beschreibung"Zeichenfolge" ein.

    5. Wählen Sie Hinzufügen, um das Interface IF_OO_ADT_CLASSRUN hinzuzufügen.

    6. Wählen Sie OK.

    7. Wählen Sie Next.

    8. Wählen Sie Ihren Transportauftrag aus, und wählen Sie Fertigstellen.

    9. Wählen Sie "Aktivieren" (Strg+F3).

  2. Ändern Sie den Quelltext in if_oo_adt_classrun~main so, dass statt einer IF -Anweisung eine CASE -Anweisung verwendet wird, um zu prüfen, ob c_number0 initial ist oder nicht.

    1. Implementieren Sie die Methode IF_OO_ADT_CLASSRUN~MAIN mit dem folgenden Quelltext:

      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. Aktivieren und testen Sie das Programm.

    1. Wählen Sie "Aktivieren" (Strg+F3).

    2. Drücken Sie F9, um die Klasse auszuführen.

    Übung