ABAP
Zeichenketten
Suche…
Literale
ABAP bietet drei verschiedene Operatoren zur Deklaration von String- oder Char-like-Variablen an
| Symbole | Interner Typ | Länge | Name |
|---|---|---|---|
| '...' | C | 1-255 Zeichen | Textfeldliterale |
| "..." | CString | 0-255 Zeichen | Textzeichenfolgenliterale |
| | ... | | CString | 0-255 Zeichen | Vorlagenliterale |
Beachten Sie, dass der Längenbereich nur für hart codierte Werte gilt. Intern haben CString Variablen eine beliebige Länge, während Variablen vom Typ C immer eine feste Länge haben.
String-Vorlagen
Stringvorlagen bieten eine bequeme Möglichkeit zum Mischen von literalen Strings mit Werten aus Variablen:
WRITE |Hello, { lv_name }, nice to meet you!|.
Es kann auch Dinge wie Datumsangaben formatieren. So verwenden Sie das Datumsformat des angemeldeten Benutzers:
WRITE |The order was completed on { lv_date DATE = USER } and can not be changed|.
Funktionale Methodenaufrufe und -ausdrücke werden unterstützt:
WRITE |Your token is { to_upper( lv_token ) }|.
WRITE |Version is: { cond #( when lv_date < sy-datum then 'out of date' else 'up to date' ) }|.
Beachtung! Das direkte Implementieren temporärer Ergebnisse (wie Methodenaufrufe) in Stringvorlagen kann zu massiven Leistungsproblemen führen (lesen Sie hier mehr darüber). Die Verwendung in selten ausgeführten Anweisungen ist zwar in Ordnung, führt jedoch dazu, dass sich Ihr Programm in Schleifen schnell verlangsamt.
Zeichenketten verketten
CONCATENATE und char-like-Variablen können mit CONCATENATE Befehl ABAP CONCATENATE verkettet werden. Eine zusätzliche Variable zum Speichern der Ergebnisse ist erforderlich.
Beispiel:
CONCATENATE var1 var2 var3 INTO result.
"result now contains the values of var1, var2 & var3 stringed together without spaces
Stenografie
Neuere Versionen von ABAP bieten eine sehr kurze Variante der Verkettung mit && (Verkettungsoperator).
DATA(lw_result) = `Sum: ` && lw_sum.
Beachtung! Es lohnt sich zu bemerken, dass die Verwendung von temporären Ergebnisse in Kombination mit dem Chaining Betreiber innerhalb von Schleifen können aufgrund der wachsenden Kopie Anweisungen zu massiven Performance - Problemen führen (lesen Sie mehr darüber hier ).