2013-08-04 314 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 
相關問題