0

私は私が思う簡単なタスクを持っています

私のコードは2つの文字列を生成します

文字列 A (改行区切り)

1
2
3
4

文字列 B (改行区切り)

5
6
7
8

これらの別々の文字列をコンマで区切られた2つの列が隣り合っているかのように1つに結合する方法を見つけようとしています

結果は文字列 C になります

1,5
2,6
3,7
4,8

ありがとう!

4

4 に答える 4

0

両方の文字列を char[] (Char() - 文字配列) (string.ToCharArray()) に変換します。

配列を反復処理します。

境界条件を確認する必要があります (たとえば、文字列の長さが異なる場合)。

于 2013-09-27T02:16:30.520 に答える
0
'first string
Dim a As String = "abcd"
'second string
Dim b As String = "defghijk"

'Remove Line feeds
Dim tempA As String = a.Replace(vbLf, "")
Dim tempB As String = a.Replace(vbLf, "")
'Get the string with the larger size.
Dim largerSize As Integer = If(tempA.Length > tempB.Length, tempA.Length, tempB.Length)
'We use a string builder to build our new string
Dim sb As New StringBuilder()
'Loop on the larger size and only insert if inside range of string
For i As Integer = 0 To largerSize - 1
    If i < tempA.Length Then
        sb.Append(a(i))
        sb.Append(",")
    End If
    If i < tempB.Length Then
        sb.Append(b(i))
    End If

    sb.Append(vbLf)
Next
'this is the result
Dim combined As String = sb.ToString()

回答を編集して改行を削除する

文字列結果が編集された後の別の編集

VB.NETにするための別の編集

于 2013-09-27T02:20:52.383 に答える
0

すばらしい Linq を使用しますZip。(最初String.Splitに改行文字を含む2つの文字列を作成します)そして次に

Dim column1() As String = {"1", "2", "3", "4"}
Dim column2() As String = {"5", "6", "7", "8"}
Dim mixed= column1.Zip(column2, Function(first, second) first & "," & second)

編集:

ああ、それから、1 つの文字列に戻したい場合は、どちらを使用してもかまいませんがString.Join、Linq も楽しいです。だからあなたは書くことができます:

Dim mixed= column1.Zip(column2, Function(first, second) first & "," & second)
                  .Select(i => i.Boo)
                  .Aggregate((i, j) => i + vbLf + j)

Linq は楽しいと言いましたか?

于 2013-09-27T04:44:19.603 に答える