abap语言中,如何将字符串 A 的第二位 替换成 1?请附上代码 多谢 字符串A的长度可以保证大于2位.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abap语言中,如何将字符串 A 的第二位 替换成 1?请附上代码 多谢 字符串A的长度可以保证大于2位.相关的知识,希望对你有一定的参考价值。

参考技术A DATA : LV_STR TYPE CHAR20.
DATA : LV_LINE TYPE SY-INDEX.
DATA : LV_INDEX TYPE SY-INDEX.
DATA : LV_TABIX TYPE SY-TABIX.
DATA : LV_CHAR TYPE C.
DATA : LV_C TYPE C.
" 第一种
LV_STR = 'ABAADDD435345AD3'.
LV_LINE = STRLEN( LV_STR ).
WRITE : / 'Old value : ', LV_STR.
CLEAR : LV_INDEX, LV_TABIX, LV_CHAR, LV_C.
DO LV_LINE TIMES.
LV_CHAR = LV_STR+LV_INDEX(1).
IF LV_CHAR EQ 'A'.
LV_TABIX = LV_INDEX + 1.
LV_STR+LV_TABIX(1) = 1.
CONDENSE LV_STR.
ENDIF.
LV_INDEX = LV_INDEX + 1.
ENDDO.
WRITE : / 'New value : ', LV_STR.

" 第二种
LV_STR = 'ABAADDD435345AD3'.
LV_LINE = STRLEN( LV_STR ).
WRITE : / SY-ULINE.
WRITE : / 'Old value : ', LV_STR.
CLEAR : LV_INDEX, LV_TABIX, LV_CHAR, LV_C.
DO LV_LINE TIMES.
LV_CHAR = LV_STR+LV_INDEX(1).
IF LV_C EQ 'A' AND LV_CHAR NE 'A'.
LV_STR+LV_INDEX(1) = 1.
CONDENSE LV_STR.
ENDIF.
LV_C = LV_CHAR.
LV_INDEX = LV_INDEX + 1.
ENDDO.
WRITE : / 'New value : ', LV_STR.

结果:
1,
Old value : ABAADDD435345AD3
New value : A1A1DDD435345A13
2,
Old value : ABAADDD435345AD3
New value : A1AA1DD435345A13
参考技术B DATA:LEN TYPE I,STR(10) TYPE C,RSTR TYPE C.
STR = 'ABCBE123'.
LEN = STRLEN( STR ).
IF LEN >= 2.
RSTR = STR+1(1).
REPLACE RSTR LENGTH LEN WITH '1' INTO STR.
ENDIF.

结果:A1CBE123
参考技术C data: lv_string(2) type c value '12'.
lv_string+1(1) = '1'.本回答被提问者采纳
参考技术D DATA:A(3) VALUE 'ABC'.

A+1(1) = '1'.

结果是A = 'A1C'.
第5个回答  2012-05-25 A+1(1) = '1'.

常见的位操作

1:具体操作那个bit

假如操作a的第二位

int a = 0xbb;

a = a & 0xfffffffd;    (保留其他位,只把a的第二位制零)

a 的第二位制1 

 a = a | 0x2;   (保留其他位只把第二位制1)

  a的第二位制0

 a = a | 0x0;   (保留其他位只把第二位制0)

以上是关于abap语言中,如何将字符串 A 的第二位 替换成 1?请附上代码 多谢 字符串A的长度可以保证大于2位.的主要内容,如果未能解决你的问题,请参考以下文章

java中数字转换成指定的字符串要怎么转

abap中如何去掉字符串前导0

常见的位操作

ABAP 中如何输出换行符?

c语言编程替换文件中字符串

急!急!ABAP中数值型怎样转换成Char型