请先看题。
下面三个句子都是字符串:
I am in class(1),what about you?
I am in class(10),what about you?
I am in class(100),what about you?谁能用一种通用的方法获取括号中的数字。也就是说,你只要考虑如何获取1或10或100(是或的关系),并且可以保证获取的是整型(integer的就行)[也就是存入到一个变量中是整型数据]数据。注意:是从字符串中得到整型数据。
谁的方法最简单,可靠性最强。谁就是得分者。

解决方案 »

  1.   

    Dim i As Integer
    i=CInt(Replace(Replace("I am in class(100),what about you?", "I am in class(", ""), "),what about you?", ""))
      

  2.   

    public function GetVal(byval strTmp as string) as integer
    GetVal=Val(Mid(strTmp, InStr(strTmp, "(") + 1))
    end function
      

  3.   

    二楼的朋友如果what about you?改为what about your friend?岂不是不太通用?前面的不变!
      

  4.   

    Private Sub Command1_Click()
        Dim s(0 To 8) As String
        Dim Number As Long
        
        s(0) = "I am in class(1),what about you?"
        s(1) = "I am in class(10),what about you?"
        s(2) = "I am in class(100),what about you?"
        s(3) = "I am in class(),what about you?"
        s(4) = "I am in class(X),what about you?"
        s(5) = "I am in class(,what about you?"
        s(6) = "I am in class),what about you?"
        s(7) = "I am in class,what about you?"
        
        If getnumber(s(0), Number) = True Then Debug.Print Number Else Debug.Print "ERR"
        If getnumber(s(1), Number) = True Then Debug.Print Number Else Debug.Print "ERR"
        If getnumber(s(2), Number) = True Then Debug.Print Number Else Debug.Print "ERR"
        If getnumber(s(3), Number) = True Then Debug.Print Number Else Debug.Print "ERR"
        If getnumber(s(4), Number) = True Then Debug.Print Number Else Debug.Print "ERR"
        If getnumber(s(5), Number) = True Then Debug.Print Number Else Debug.Print "ERR"
        If getnumber(s(6), Number) = True Then Debug.Print Number Else Debug.Print "ERR"
        If getnumber(s(7), Number) = True Then Debug.Print Number Else Debug.Print "ERR"
    End SubFunction getnumber(ByVal s As String, ByRef Number As Long) As Boolean
      Dim sTemp As String
      Dim Pos As Long
      Pos = InStr(s, "(")
      If Pos = 0 Then GoTo ErrTrap
      sTemp = Mid(s, Pos + 1)
      If sTemp = "" Then GoTo ErrTrap
      If IsNumeric(Left(sTemp, 1)) = False Then GoTo ErrTrap
      Number = Val(sTemp)
      getnumber = True
      Exit Function
    ErrTrap:
      getnumber = False
    End Function
      

  5.   

    Private Sub Command1_Click()
      Dim str As String
      Dim i As Integer
      For i = 1 To Len(str)
        If IsNumeric(Mid(str, i, 1)) Then text1.Text = text1.Text & Mid(str, i, 1)
      Next
    End Sub
      

  6.   

    效果如下:
     1 
     10 
     100 
    ERR
    ERR
    ERR
    ERR
    ERR
      

  7.   

    用InStr函数分别得到左右括号的位置
    然后用Mid函数截取
      

  8.   

    winehero(编程人生)的通用信最强。最简单。而且最先写出来。应该得分!
      

  9.   

    使用正则表达式
    '先引用Microsoft VBScript Regular Expressions
        Dim re As New RegExp
        re.IgnoreCase = True
        re.Global = True
        're.Pattern = "I am in class(),what about you"
        re.Pattern = "I am in class[(]"
        Text1.Text = re.Replace(Text1.Text, "")
        re.Pattern = "[)],what about you[?]"
        Text1.Text = re.Replace(Text1.Text, "")