在VB中拆分字符串

时间:2011-09-28 15:46:54

标签: vb.net string

我有一个ComboBox,我将其分配给变量:

Dim var as String = ComboBox1.SelectedValue 
Dim name As String = var.Split(",")

这给了我错误

  

类型'1维数组字符串'的值无法转换为字符串

关于我哪里出错的任何想法?

5 个答案:

答案 0 :(得分:4)

Split返回数组字符串。您的变量需要更改为数组,而不仅仅是单个字符串。

答案 1 :(得分:1)

name需要声明为数组。

dim name() as string = var.split(",")

split()方法将根据给定的字符拆分字符串,并将每个新创建的字符串放入一个数组中并返回它。

这是您的错误消息告诉您的信息:

Value of type '1-dimensional array of string' cannot be converted to String

该方法返回一个字符串数组,但是你试图将它放入一个字符串中!

编辑:回答您的回答......

到目前为止,您已设法使用split方法自行拆分字符串。要将其输出到消息框,您需要按正确的顺序连接这两个元素:

msgbox(name(1) & " " & name(0))

注意我将数组编入索引两次!元素1是第一个名称,元素0是姓氏。记住你的名字是lname,fname格式。传递阵列本身没有意义!请记住,数据类型不等于该类型的数组,它们是两个不同的东西。因此,字符串与字符串数组不兼容。但是,数组的每个单独元素都是一个字符串,因此每个元素都与字符串类型兼容(因为它们是相同的东西)!

答案 2 :(得分:1)

我的VB有点生疏,但我认为你必须让name成为一个数组:

Dim name() As String = var.Split(",")

答案 3 :(得分:1)

 Dim var As String = ComboBox1.SelectedValue
 Dim temp() As String = Split(var, ",", -1, CompareMethod.Binary)
 Dim name As String = temp(0)

答案 4 :(得分:0)

或许“name”不是一个数组,目标是在第一个逗号之前填充“name”,在这种情况下修复将是:

Dim name as String = var.Split(",")(0)

注意:假设var不是Nothing。