powerbuilder中,如果我要取"abcdEF 12345"这个字符串中的12345这几个数字,怎么实现啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powerbuilder中,如果我要取"abcdEF 12345"这个字符串中的12345这几个数字,怎么实现啊?相关的知识,希望对你有一定的参考价值。
powerbuilder中,如果我要取"abcdEF 12345"这个字符串中的12345这几个数字,怎么实现啊?("EF"后肯定是空格,然后紧接着数字)
用pos,mid,还是match啊?
举例子给我看看
一楼可以是可以,但是不够通用性,比如说我想通过输入一组字符串来取"EF "后面的数字,而数字的长度是不定的,那么又怎么判定呢?
如果你只确定位置和要取的字符串长度,可以用mid函数
如果只是知道要取的字符串,不知道位置,可以用pos函数取位置,结合mid函数取出内容
=============
那很简单啊
我们假定EF后面跟的是空格,而EF前边的字符不固定
long ll_pos,ll_len
string ls_str
ls_str = 'abcdEF 12345'
ll_pos = pos(ls_str,'EF')
ls_rtn = trim(mid(ls_str,ll_pos + 2))
messagebox('返回结果',ls_trn)
==================
具体还要根据你的需求而定 参考技术B pos函数是判断字符串中子串的位置的,返回的值是long类型;mid函数需要指定从什么位置开始取固定长度的子串,不指出子串长度默认是从开始位置之后的子串;match函数,是判断字符串中是否包含指定的子字符串的。Left和Right函数较为简单一些,一般情况下取子串会结合Trim()函数使用的,这个函数是为了去掉左边和右边字符串的空格。代码:
String ls_str,ls_substr
ls_str='abcdEF 12345'
ls_substr=Right(Trim(ls_str),5)
messagebox('ls_substr',ls_substr) // 参考技术C Long ll_len,ll_i
String ls_num
ll_len = Len(sle_1.text)
ll_i = Pos(sle_1.text,"F",1)
ls_num = Right(sle_1.text,Len(sle_1.text) - (ll_i + 1) )本回答被提问者采纳
以上是关于powerbuilder中,如果我要取"abcdEF 12345"这个字符串中的12345这几个数字,怎么实现啊?的主要内容,如果未能解决你的问题,请参考以下文章