2013-08-04 241 views
-7

我知道这已经回答了很多次,但我想知道是否有人能教我分割字符串(逗号分隔)的最简单方法,即字符串数字= 1,2,3, 4,5,7,8,9,10将逗号分隔字符串转换为多个字符串

这样

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 

分裂后,我想插入到数据库中的表为单独的一行(10行)。我想问我怎么会做那么,我是否必须将它们放入10个变量中?只是对字符串的迭代感到困惑!

+2

哪种语言?您标记3. – Borgleader

+0

我在vb.net – user2502561

回答

1

可以使用string.Split(...)方法把所有结果存储到string array

您Choosen语言的所有包含这些方法

1

String.split会返回一个字符串数组

+0

我有分解)的字符串作为 昏暗的话(作为字符串= string.Split(“”) 工作'使用For Each循环超过的话,并显示它们 暗淡字作为字符串 对于每个单词的话 的Response.Write(字) 接下来 现在我如何将字符串分割成一个array..but如何将其作为单独的行 – user2502561

+0

而不是印刷在你的循环插入到屏幕数据库 – BlackICE

1

,你可以通过逗号分隔的字符串到数据库,然后在那里只分裂。如果使用sql,则可以使用以下功能

CREATE FUNCTION dbo.fnSplit(
    @sInputList VARCHAR(8000) -- List of delimited items 
    , @sDelimiter VARCHAR(8000) = ',' -- delimiter that separates items 
) RETURNS @List TABLE (item VARCHAR(8000)) 

BEGIN 
DECLARE @sItem VARCHAR(8000) 
WHILE CHARINDEX(@sDelimiter,@sInputList,0) <> 0 
BEGIN 
SELECT 
    @sItem=RTRIM(LTRIM(SUBSTRING(@sInputList,1,CHARINDEX(@sDelimiter,@sInputList,0)-1))), 
    @sInputList=RTRIM(LTRIM(SUBSTRING(@sInputList,CHARINDEX(@sDelimiter,@sInputList,0)+LEN(@sDelimiter),LEN(@sInputList)))) 

IF LEN(@sItem) > 0 
    INSERT INTO @List SELECT @sItem 
END 

IF LEN(@sInputList) > 0 
INSERT INTO @List SELECT @sInputList -- Put the last item in 
RETURN 
END 
GO 
+1

不这样做,如果你可以避免它。 SQL服务器在集合操作上更好,而不是迭代循环 – BlackICE

1

以下代码根据分隔符分割字符串。您可以将StringSplitOptions设置为忽略空条目或将空条目添加到字符串数组中。

//C# 
String sentence = "1,2,3,4,5,6,7,8,9"; 
String[] delim = {","}; 
String[] words = sentence.Split(delim,StringSplitOptions.RemoveEmptyEntries); 

下面的代码是用C++实现的。它将一行作为用户的输入,并使用strtok根据分隔符拆分字符串。

//C++ 
string line; 
char* word; 
getline(cin,line); 
word = strtok(const_cast<char*>(line.c_str())," "); 
while(word) 
{ 
    //input this word in container of your choice 
    word = strtok(NULL," "); 
} 
1
Dim LineOfText As String = "1,2,3,4,5,6,7,8,9,10" 
Dim i As Integer 
Dim aryTextFile() As String 

aryTextFile = LineOfText.Split(",") 

For i = 0 To UBound(aryTextFile) 

MsgBox(aryTextFile(i)) 

Next i 
1

我知道它的5个月大,但以防万一你仍然需要回答:

dim stringNumber as string = "1,2,3,4,5,6,7,8,9,10" 

Dim stringSpiltArray as string() 
If Not stringNumber Is Nothing And stringNumber.Length <> 0 Then 
    stringSpiltArray = stringNumber.Split(',') 
End If 

For Each str As String In stringSpiltArray 
    'insert into db 
Next 

使用split()分裂您的字符串和分隔值存储在一个array

然后使用for each循环到数组中的每个项目。

1
Dim substr As String() = txtString.Text.Split(", ") 

For Each strnumber As Integer In substr 
    txtoutput.Text=strnumber & vbNewLine 
Next 
相关问题