输入两个字符串,找不同
本帖最后由 DARKBLUEWORLD 于 2010-11-03 15:01 编辑
[size=3比如字符串A:ABCABCABC,总数是3A3B3C,字符串B:ABCDABCD ,总数是2A2B2C2D,在画面上输入,
找不同,不仅要找到不同的地方,还要计算出数目,比如,上面的A和B找不同结果为:
不同之处 数目
A 1
B 1
C 1
D 2
请各位前辈指点,我该怎么做
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
谢谢指点,我琢磨一下
在rpgiv中用%check,请参照我写的:
1)《RPGIV编程技巧(9)ile rpg中如何判断一个字符串是否全是由0-9数字组成的?》
http://blog.chinaunix.net/u1/46034/showart_2190008.html
2)《RPGIV编程技巧(10)如何判断数组有非法字符?》
http://blog.chinaunix.net/u1/46034/showart_2201438.html
楼主想要实现两个字符串不同的地方
我想到的一个方法
以最短的那个字符串为标准,查找长的那个字符串
例如 A='4514646DFDFD' B='45413174643DDFDSFDFD@'
一个一个取A中字符 去 chain B 如果发现就把两个字符串中这个字符都有置为 *BLANK
一直到结束,再合起两个字符串,排序,之后非空的那些字符就是两者不同的地方。数目可以根据下表去计算
伪码:
ARRY BRRY CRRY 都是 1A DIM() 如果有汉字的话就另外说了
MOVEA A ARRY
MOVEA B BRRY
DO X %LEN(A)
EVAL Y = %LOOKUP(ARRY(X):BRRY)
IF Y<>0
EVAL ARRY(X) = *BLANK
EVAL BRRY(Y) = *BLANK
ENDIF
ENDDO
SORTA ARRY
SORTA BRRY
MOVEA ARRY D
MOVEA BRRY E
EVAL F = %TRIM(D) +%TRIM( E)
MOVEA F CRRY
SORTA CRRY
CRRY 就是楼主想要的东西了
也看不懂,飄過
俺不是高手,看不懂你的需求