2

文字列内の各文字を読み取るにはどうすればよいですか? たとえば、文字列「a7m4d0」の各文字を読み取りたいとします。その後、各文字が文字または数字であることを確認したいと思います。ヒントやアイデアはありますか?

4

5 に答える 5

7

少し複雑で、最近の 740 ABAP サーバーで。:)

DATA: lv_text  TYPE string  VALUE `a7m4d0`.

DO strlen( lv_text ) TIMES.
  DATA(lv_single) = substring( val = lv_text off = sy-index - 1 len = 1 ) && ` is ` &&
                    COND string( WHEN substring( val = lv_text off = sy-index - 1 len = 1 ) CO '0123456789' THEN 'Numeric'
                                 ELSE                                                                             'Character' ).
  WRITE : / lv_single.
ENDDO.
于 2014-10-13T15:01:33.043 に答える
3

文字列内の単一の文字にアクセスする方法は次のとおりです。

この例では、文字 "t" を変数 "lv_char1" に抽出します。

DATA: lv_string TYPE char10,
      lv_char   TYPE char1.

lv_string = "Something";

lv_char1 = lv_string+4(1).

文字列名に「+4」を追加すると、文字列の先頭からのオフセット (この場合は 4) が指定され、「(1)」は取得する文字数が指定されます。

詳細については、こちらのドキュメントを参照してください。

http://help.sap.com/saphelp_nw04/Helpdata/EN/fc/eb341a358411d1829f0000e829fbfe/content.htm

各文字を順番に調べたい場合は、「strlen( )」を使用してフィールドの長さを取得し、各文字に対してループを実行できます。

于 2013-04-21T15:47:17.050 に答える