找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14471|回复: 8

[求助] CREO怎么判断字符串中相同字符有几个

[复制链接]

33

主题

312

回帖

15

威望

工程师

积分
431
发表于 2014-8-15 14:47 | 显示全部楼层 |阅读模式
creo中,怎么判断“abc-00-00-00” 这个字符串里有几个“-”,关系式应该怎么写啊

57

主题

1269

回帖

224

威望

版主

研究员

积分
1947

斑竹勋章希望之星勋章热心助人勋章优秀会员勋章

QQ
发表于 2014-8-15 19:25 | 显示全部楼层
abc-00-00-00  
有个函数可以提取字符串里某位(这里可设个参数,比如a)的字符,记不清函数名了,用  -   去比较,相等就数量(假设该参数为b,初值为0)加1(b+1),然后  a+1,再进行循环比较,最后取b值即可
他山之石,可以攻玉||绳锯木断,水滴石穿

拒绝回短消息,有问题请发帖。

严惩灌水,坛友自重,请看发帖规范
回复

使用道具 举报

33

主题

312

回帖

15

威望

工程师

积分
431
 楼主| 发表于 2014-8-16 14:42 | 显示全部楼层
这是个办法,不过循环的次数比较多。您看看这个思路怎么样:先判断出第一个“-”在哪一位,然后提取第一个“-”后面的字符继续判断,判断到最后没有“-”为止。当然每判断一次,“-”数量就加一
回复

使用道具 举报

33

主题

312

回帖

15

威望

工程师

积分
431
 楼主| 发表于 2014-8-16 14:44 | 显示全部楼层
1051083108 发表于 2014-8-15 19:25
abc-00-00-00  
有个函数可以提取字符串里某位(这里可设个参数,比如a)的字符,记不清函数名了,用  -   ...

这是个办法,因为ABC这个字符数不能确定,循环的次数比较多。您看看这个思路怎么样:先判断出第一个“-”在哪一位,然后提取第一个“-”后面的字符继续判断,判断到最后没有“-”为止。当然每判断一次,“-”数量就加一
回复

使用道具 举报

21

主题

311

回帖

6

威望

工程师

积分
411
发表于 2014-8-16 19:36 | 显示全部楼层
search只能判断有
回复

使用道具 举报

33

主题

312

回帖

15

威望

工程师

积分
431
 楼主| 发表于 2014-8-16 21:04 | 显示全部楼层
api163 发表于 2014-8-16 19:36
search只能判断有

search(  )   查找字符串,返回位置值  
用法:search(string,substring).      
  string:原字符串         substring:要找的字符串.        查到则返回位置,否则返回0,第一个字符位置值为1,依此类推.   
例 :         
Parstr=abcdef.则         
Where=search(parstr,"bcd"")==>Where=2.         
Where=search(parstr,"bed")==>where=0(没查到).
回复

使用道具 举报

21

主题

311

回帖

6

威望

工程师

积分
411
发表于 2014-8-18 19:21 | 显示全部楼层
可以这样想,我们没有while ,假如 "-" 的个数不超过5 个,我们就做5个if
再不然做他10if ,还证是复制粘
家里没有proe,下面代码没有经过验证 ,

n=0
parstr="a-b-c-d-f"

Where=search(parstr,"-")
if where>0
  n=n+1
parstr=extract(parstr,where,string_length(parstr)-where) /*提取找到位置之后的串
endif
/*下面重复
Where=search(parstr,"-")
if where>0
  n=n+1
parstr=extract(parstr,where,string_length(parstr)-where) /*提取找到位置之后的串
endif
回复

使用道具 举报

33

主题

312

回帖

15

威望

工程师

积分
431
 楼主| 发表于 2014-8-19 08:42 | 显示全部楼层
api163 发表于 2014-8-18 19:21
可以这样想,我们没有while ,假如 "-" 的个数不超过5 个,我们就做5个if
再不然做他10if ,还证是复制粘
家 ...

没有一个现成的函数提取,好麻烦啊
回复

使用道具 举报

21

主题

311

回帖

6

威望

工程师

积分
411
发表于 2014-8-19 19:13 | 显示全部楼层
没有好办法,除非你会二次开发,那里可以开发各种函数放在关系式中用.
今天试了一下,where要加1
Where=search(parstr,"-")
if where>0
  n=n+1
parstr=extract(parstr,where+1,string_length(parstr)-where) /*提取找到位置之后的串
endif
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站为非营利性站点,部分资源为网友搜集或发布,仅供学习和研究使用,如用于商业用途,请购买正版。站内所发布的资源,如有侵犯你的权益,请发邮件联系我们,本站将立即改正或删除。

手机版|小黑屋|野火论坛(©2007~2024) ( 苏ICP备11036728号-2 )苏公网安备 32039102000103号|站长QQ28016688

GMT+8, 2025-2-1 00:58 , Processed in 0.139045 second(s), 22 queries .

快速回复 返回顶部 返回列表