Foxtable(狐表)用户栏目专家坐堂 → 再问contains中变量使用----解决问题


  共有2064人关注过本帖树形打印复制链接

主题:再问contains中变量使用----解决问题

帅哥哟,离线,有人找我吗?
sunnyfastener
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1482 威望:0 精华:0 注册:2016/5/15 8:59:00
再问contains中变量使用----解决问题  发帖心情 Post By:2017/3/15 13:10:00 [只看该作者]

对contains(),中变量,不能识别,求助了

 

'''对输入标准进行标准化,体系+推荐+标准号+年号(如果有,在考虑中)
'''
Dim str As String = args(0)
Dim std() As String = {"GB","HG","SH","JB","ASME","ASTM","DIN"} '''标准体系数组
Dim std_spec() As String = {"","","",""}

 

For Each std_tp As String In std
    MessageBox.Show(std_tp)
    If str.Contains( std_tp ) Then   '''if str.contains("" & std_tp & "") then(也尝试了)
        std_spec(0) = std_tp
        str.Replace(""& std_tp &"","")
    Else
        std_spec(0) = "未匹配"
    End If
Next

Return std_spec(0) 

 

经高手指点,找到问题

1、是逻辑上出问题了,匹配到后,应该退出循环,添加exit for

2、contains 可以直接使用变量名


 

[此贴子已经被作者于2017/3/15 18:07:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/15 13:36:00 [只看该作者]

是不是大小写的问题?

 

If str.ToLower.Contains( std_tp.ToLower ) Then


 回到顶部
帅哥哟,离线,有人找我吗?
sunnyfastener
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1482 威望:0 精华:0 注册:2016/5/15 8:59:00
  发帖心情 Post By:2017/3/15 17:58:00 [只看该作者]

测试过了,都是同一状态

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/15 18:33:00 [只看该作者]

改一下

 

Dim str As String = ”123HG789"
Dim std() As String = {"GB","HG","SH","JB","ASME","ASTM","DIN"} '''标准体系数组
Dim std_spec() As String = {"","","",""}

For Each std_tp As String In std
    If str.Contains( std_tp ) Then
        std_spec(0) = std_tp
        str = str.Replace(std_tp,"")
        exit for
    Else
        std_spec(0) = "未匹配"
    End If
Next

msgbox(std_spec(0) & vbcrlf & str)


 回到顶部