如何在VB.net中将字符串拆分为输入长度的字符串数组



我有一个由用户输入的字符串,长度取决于输入字符串的长度。在另一个字段中,用户需要键入他想从该字符串中得到多少相等部分的数字。

例如:

Dim unos As String = "Jedna duga linija teksta koju zelim prelomiti na dijelove"

现在我想把它分成字符串数组。该字符串的每个部分取决于输入的部分数,例如

EDIT:

我有这个代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim unos As String = TextBox1.Text
Dim brLinija As Integer = TextBox2.Text
Dim unosNiz As New List(Of String)
For i As Integer = 0 To Convert.ToInt32(unos.Length / brLinija) - 1
unosNiz.Add(unos.Substring(i, unos.Length / brLinija))
Next
For Each s As String In unosNiz
TextBox3.Text = TextBox3.Text & s & vbCrLf
Next
End Sub

brLinija是用户输入的整数(字符串数组的行数(

User entered number of lines: 4

电流输出:

Jedna duga lin
edna duga lini
dna duga linij
na duga linija
a duga linija 
duga linija t
duga linija te
uga linija tek
ga linija teks
a linija tekst
linija teksta
linija teksta 
inija teksta k
nija teksta ko
Jedna duga lin
edna duga lini
dna duga linij
na duga linija
a duga linija 
duga linija t
duga linija te
uga linija tek
ga linija teks
a linija tekst
linija teksta
linija teksta 
inija teksta k
nija teksta ko

我想要的输出:

jedna duga lini
ja teksta koju
zelim prelomiti
na dijelove

我只是弄不明白该如何将这个字符串正确地拆分为子字符串。

感谢

因此,您可能只是希望每行的字符数相等。最后一行可以只包含余数

您可以迭代指定的行数(前提是该数字可以解析为整数,因此使用integer.TryParse((验证输入(,然后将字符串长度(以字符为单位(除以行数,并在每次迭代中取该字符数。

类似这样的东西:

Imports System.Linq
' You should also check whether the TextBox.Text contains any chars
Dim unos As String = TextBox1.Text
Dim brLinija As Integer = 0
If (Not Integer.TryParse(TextBox2.Text, brLinija)) Then
MessageBox.Show("Invalid input")
Return
End If
Dim charPerPart = CInt(Math.Ceiling(unos.Length / brLinija))
Dim unosNiz As New List(Of String)
For i As Integer = 0 To brLinija - 1
unosNiz.Add(String.Concat(unos.Skip(charPerPart * i).Take(charPerPart)))
Next

它生成以下输出:

Jedna duga lini
ja teksta koju 
zelim prelomiti
na dijelove

相关内容

  • 没有找到相关文章

最新更新