问题:
有一个字符串例如:61B2993B2ACC8C57A2FB7F5FC587F84D ,
在PB中如何才能将其字符串中的字母去除了(将B、A、C、D、E、F...去除),
留下612993285727558784单纯数字的字符串。
常规的方法是通过for循环,逐个进行判断并剔除,如:
这种方法中规中矩,当然是一种合理的容易理解的解决方案。
这里我们使用另外一种快捷的方法,用到的是EditMask控件的Mask属性。
经过试验,发现:
(1)当EditMask的MaskDataType属性设置为NumericMask!,Mask属性设置为“##...”时,最多可以输入16位的数字,粘贴数据时会自动过滤掉非数字的字符,当最终留下的数字个数超过16位时,第16位数的数字会根据第17位数字的大小来决定是否进1,而第17位开始的数字都会被替换为0;
(2)当EditMask的MaskDataType属性设置为DecimalMask!,Mask属性设置为“##...”时,最多可以输入19位的数字,粘贴数据时会自动过滤掉非数字的字符,当最终留下的数字个数超过19位时,留下的字符串将为空字符串;
(3)当EditMask的MaskDataType属性设置为StringMask!,Mask属性设置为“##...”时,可以输入无限的数字,粘贴数据时会自动将非数字的字符替换为空格符。
根据以上试验,可以使用如下代码来实现替换:
至于用StringMask!属性时,结果如下:
本文介绍了如何利用PB(PowerBuilder)中的EditMask控件,通过设置不同的Mask属性和MaskDataType属性,实现从字符串中快速去除非数字字符的功能。通过实验,展示了使用EditMask控件的快捷方法,包括处理不同长度的最大限制和特殊行为,以及提供示例代码以直观展示应用过程。
972

被折叠的 条评论
为什么被折叠?



