Abap 如何计算元音

Abap 如何计算元音,abap,Abap,如何计算字符串中的元音 例如: data: str type string value 'steave'. 我希望输出是: 2 --> e. 1 --> a. 我真的以为你在胡编乱造。我希望《vogals》是角色。我听说Vogals是元音。谢谢@jmoerdyk。不管怎么说,既然你让我感兴趣,我想这可能行得通: vowels = 'aeiouy' length = STRLEN(vowels). WHILE index < length. char = vowels+

如何计算字符串中的元音

例如:

data: str type string  value 'steave'.
我希望输出是:

2 --> e.
1 --> a.

我真的以为你在胡编乱造。我希望《vogals》是角色。我听说Vogals是元音。谢谢@jmoerdyk。不管怎么说,既然你让我感兴趣,我想这可能行得通:

vowels = 'aeiouy'
length = STRLEN(vowels).
WHILE index < length.
  char = vowels+index(1).
  FIND ALL OCCURENCES OF char IN yourString
  MATCH COUNT  occurrences
  WRITE: / char,'appears', / occurrences,'times'
  ADD 1 TO index.
ENDWHILE.
元音='aeiouy'
长度=STRLEN(元音)。
而指数<长度。
char=元音+索引(1)。
查找字符串中出现的所有字符
匹配计数出现次数
写入:/char,“出现”,“出现次数”
在索引中添加1。
结束时。

似乎很难为SAP工作。该语言似乎可以很好地处理表/数据库,而不是这些类型的字符串操作。

只需循环字符串/字符,并将结果收集到一个统计内部表中即可。使用
CA
(包含任何)运算符检查元音。示例代码:

DATA: str TYPE string VALUE 'steave',
      l_pos TYPE sy-index,
      BEGIN OF ls_stat,
        char TYPE c,
        count TYPE sy-index,
      END OF ls_stat,
      lt_stat LIKE STANDARD TABLE OF ls_stat.

DO strlen( str ) TIMES.
  l_pos = sy-index - 1 .
  IF str+l_pos(1) CA 'AaEeIiOoUu'.
    ls_stat-char = str+l_pos(1).
    ls_stat-count = 1.
    COLLECT ls_stat INTO lt_stat.
  ENDIF.
ENDDO.

SORT lt_stat BY count DESCENDING.
LOOP AT lt_stat INTO ls_stat.
  WRITE: / ls_stat-count, '->', ls_stat-char.
ENDLOOP.

我从他们只引用“a”和“e”的计数这一事实猜测,也许vogal==元音。@jmoerdyk很好,我会修正。你说“vogals”时是指“wovels”吗?@SergioPrats你说“wovels”时是指元音吗派斯。。。这不是有史以来最好的修正:S