vb.net 教程 1-3 数据类型:String 2

两个字符串连接在一起可以通过“&"或者"+",
但是需要注意的是,有时候用”+“ 连接字符串和其他类型数据时候,使用不当会产生错误
看一下代码
    Sub Main()
        Dim sub1 As String = "12"
        Console.WriteLine("字符串:" & sub1)
        Dim sub2 As Integer = 13
        Console.WriteLine("整数:" & sub2)

        Dim s1 As String
        s1 = sub1 & sub2
        Console.WriteLine("使用&连接:" & s1)

        Dim s2 As String
        s2 = sub1 + sub2   '①
        Console.WriteLine("使用+连接:" & s2)

        Console.ReadKey()
    End Sub
输出结果如下:
当然我们更应该减少不明确的两种类型之间的运算。上面例子中①处,我们可以修改为,s2 = sub1 + sub2.ToString。得到的结果和 s1 = sub1 & sub2 相同。

有时候我们需要查找某个字符串中是否包含了别的字符串,这就需要使用到字符串的查找功能了:
字符串的查找方法包括正向查找(IndexOf)和反向查找(LastIndexOf),如果找到则返回需要查找的字符串的索引(位置),否则返回-1。
需要注意的是,字符串中第一个字符的索引为0:
示例代码如下:
    Sub Main()
        Dim s As String = "http://blog.csdn.net/uruseibest"
        Dim sFind As String = "e"

        '在字符串中查找
        Dim intPos As Integer
        intPos = s.IndexOf(sFind)                             '①
        do while intPos > -1
            Console.WriteLine("找到字符串位于:" & intPos)
            intPos = s.IndexOf(sFind,intPos + 1)             '②
        Loop

        Dim sFind1 As String = "og"
        intPos = s.IndexOf(sFind1)
        Console.WriteLine("找到字符串位于:" & intPos)

        Dim sFind2 As String = "x"
        intPos = s.IndexOf(sFind2)
        Console.WriteLine("找到字符串位于:" & intPos)

        '反向查找
        Dim sFind3 As String = "e"
        intPos = s.LastIndexOf(sFind3)                        '③
        do while intPos > -1
            Console.WriteLine("反向找到字符串位于:" & intPos)
            intPos = s.LastIndexOf(sFind3,intPos - 1,intPos) '④
        Loop

        Console.ReadKey()
    End Sub

①查找字符串s中的第一个字符"e",之后开始循环查找剩下的”e”
②从位置intPos开始查找
③反向查找字符串s中第一次出现的字符"e",即最后一个"e"
④从位置(intPos-1)处,反向查找 intPos个字符中出现的“e”
先前查找e的顺序为:18、25、28;
反向查找的时候顺序为:28、25、18

同时,我们也看到由于"x"在字符串中不存在,所以返回-1。


由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供的参考。

学习更多vb.net知识,请参看 vb.net 教程 目录

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...