用逗号分隔的两个字符串文本框进行操作vb net

马里乌斯(Norisor Marius)

我有2个数字字符串:

Textbox1.Text = 1,2,3,4,5,6,7,8,9,11
Textbox2.Text = 11,9,8,7,6,5,4,3,2,1

我想计算并在textbox3中显示其总和,+或-或*或/

来自textbox1.text的所有值+来自textbox2.text的所有值

Textbox3.Text = 12,11,11,11,11,11,11,11,11,12

不过,我想要一个规范,在该规范中可以更改符号,而不是根据我的选择将+改为-或/或*。

这段代码有点麻烦,我想用更简单的方法来改进它。

    Dim str1 As String
    'Set your string value
    str1 = TxtBoxLstDrawsPlus.Text
    Dim str2 As String
    'Set your string value
    str2 = TxtBoxLstDrawsMinus.Text
    Dim strWords As String() = str1.Split(",")
    Dim strWordsAAA As String() = str2.Split(",")
    TextBox6.Text &= Val(strWords(0)) + Val(strWordsAAA(0)) & "," & Val(strWords(1)) + Val(strWordsAAA(1)) & "," & Val(strWords(2)) + Val(strWordsAAA(2)) & "," & Val(strWords(3)) + Val(strWordsAAA(3)) & "," & Val(strWords(4)) + Val(strWordsAAA(4)) & "," & Val(strWords(5)) + Val(strWordsAAA(5)) & "," & Val(strWords(6)) + Val(strWordsAAA(6)) & "," & Val(strWords(7)) + Val(strWordsAAA(7)) & "," & Val(strWords(8)) + Val(strWordsAAA(8)) & "," & Val(strWords(9)) + Val(strWordsAAA(9)) & "," & Val(strWords(10)) + Val(strWordsAAA(10)) & "," & Val(strWords(11)) + Val(strWordsAAA(11)) & "," & Val(strWords(12)) + Val(strWordsAAA(12)) & "," & Val(strWords(13)) + Val(strWordsAAA(13)) & "," & Val(strWords(14)) + Val(strWordsAAA(14)) & "," & Val(strWords(15)) + Val(strWordsAAA(15)) & "," & Val(strWords(16)) + Val(strWordsAAA(16)) & "," & Val(strWords(17)) + Val(strWordsAAA(17)) & "," & Val(strWords(18)) + Val(strWordsAAA(18)) & "," & Val(strWords(19)) + Val(strWordsAAA(19))
用户名

您可以分割输入字符串(TextBox1.TextTextBox2.Text),压缩字符串数组以生成结果数组,最后将String.Join其放入TextBox3

在一行中:

TextBox3.Text = String.Join(",", TextBox1.Text.Split({","c}, StringSplitOptions.RemoveEmptyEntries).
    Zip(TextBox2.Text.Split({","c}, StringSplitOptions.RemoveEmptyEntries),
        Function(x, y) CInt(x) + CInt(y)))

您可以使用相同的方法执行不同的算术运算:

Dim opr As Char = "+"c '<- From your arithmetic operation selector like ComboBox.

TextBox3.Text = String.Join(",", TextBox1.Text.Split({","c}, StringSplitOptions.RemoveEmptyEntries).
    Select(Function(x) CInt(x)).
    Zip(TextBox2.Text.Split({","c}, StringSplitOptions.RemoveEmptyEntries).
    Select(Function(y) CInt(y)),
        Function(x, y)
            Select Case opr
                Case "-"c
                    Return x - y
                Case "*"c
                    Return x * y
                Case "/"c
                    Return x \ y
                Case Else
                    Return x + y
            End Select
        End Function))

如果您先验证输入内容,将是一个好主意:

Dim Arr1() = TextBox1.Text.Split({","c}, StringSplitOptions.RemoveEmptyEntries)
Dim Arr2() = TextBox2.Text.Split({","c}, StringSplitOptions.RemoveEmptyEntries)
Dim opr As Char = OprTextBox.Text.ElementAtOrDefault(0) 'A TextBox this time as another example.
Dim ValidOpr() As Char = {"+"c, "-"c, "*"c, "/"c}

If Arr1.Length <> Arr2.Length OrElse
    Arr1.Any(Function(x) Not Integer.TryParse(x, Nothing)) OrElse
    Arr2.Any(Function(x) Not Integer.TryParse(x, Nothing)) OrElse
    Not ValidOpr.Contains(Opr) Then
    MessageBox.Show("Excuse me ... !?!?")
    Return
End If

'You have valid inputs. Proceed...

TextBox3.Text = String.Join(",", Arr1.Select(Function(x) CInt(x)).
    Zip(Arr2.Select(Function(x) CInt(x)),
        Function(x, y)
            Select Case opr
                Case "-"c
                    Return x - y
                Case "*"c
                    Return x * y
                Case "/"c
                    Return x \ y
                Case Else
                    Return x + y
            End Select
        End Function))

更好的是,enum算术运算:

Public Enum ArithmeticOperations
    Add
    Subtract
    Multiply
    Divide
End Enum

..并创建Function返回连接字符串的参数化

'You name it...
Public Function GetCalcString(input1 As String,
                                input2 As String,
                                opr As ArithmeticOperations) As String

    Dim Arr1() = input1.Split({","c}, StringSplitOptions.RemoveEmptyEntries)
    Dim Arr2() = input2.Split({","c}, StringSplitOptions.RemoveEmptyEntries)

    If Arr1.Length <> Arr2.Length OrElse
        Arr1.Any(Function(x) Not Integer.TryParse(x, Nothing)) OrElse
        Arr2.Any(Function(x) Not Integer.TryParse(x, Nothing)) Then
        Return Nothing         
    End If

    Return String.Join(",", Arr1.Select(Function(x) CInt(x)).
                        Zip(Arr2.Select(Function(x) CInt(x)),
                            Function(x, y)
                                Select Case opr
                                    Case ArithmeticOperation.Subtract
                                        Return x - y
                                    Case ArithmeticOperation.Multiply
                                        Return x * y
                                    Case ArithmeticOperation.Divide
                                        Return x \ y
                                    Case Else
                                        Return x + y
                                End Select
                            End Function))
End Function

假设ComboBox以相同的顺序列出了算术运算

Private Sub TheCaller()
    TextBox3.Text = GetCalcString(TextBox1.Text,
                                  TextBox12.Text,
                                  CType(ComboBox1.SelectedIndex, ArithmeticOperations))
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在VB.NET中关联两个文本字符串的最佳方法

来自分类Dev

NET字符串长度用多行分割多行文本框文本

来自分类Dev

比较两个字符串数组与concat字符串VB.NET

来自分类Dev

将文本框字符串转换为Double VB.NET

来自分类Dev

如何在ASP.NET VB中比较两个字符串

来自分类Dev

VB.NET在字符串中两个单词之间查找文本

来自分类Dev

VB.NET-如何使文本框每次按键仅接受一个字符?

来自分类Dev

VB.net用HTML字符串填充文本框

来自分类Dev

CSV上传后,将逗号分隔的字符串转换为两个字符串[PHP]

来自分类Dev

VB.Net字符串替换,以逗号分隔

来自分类Dev

PowerShell用日期和时间替换两个字符串之间的文本

来自分类Dev

NET字符串长度用多行分割多行文本框文本

来自分类Dev

后台工作完成后,将两个字符串放入不同的标签中-vb.net

来自分类Dev

将文本框字符串转换为Double VB.NET

来自分类Dev

用逗号连接两个字符串

来自分类Dev

如何在ASP.NET VB中比较两个字符串

来自分类Dev

VB.NET在字符串中两个单词之间查找文本

来自分类Dev

VB .Net在文本框的每一行的开头和结尾添加字符串

来自分类Dev

从字符串中提取2个数字以填充文本框vb.net

来自分类Dev

提取两个字符串之间的文本并对其执行操作

来自分类Dev

VB.NET-如何使文本框每次按键仅接受一个字符?

来自分类Dev

在ASP.NET(VB)中串联两个字符串时出现奇怪的行为

来自分类Dev

获取两个字符串之间的文本正则表达式VB.Net

来自分类Dev

VB.NET从文本框中获取文本而无需特定的字符串

来自分类Dev

Asp.net,Oracle sql,基本上从两列名称中搜索多个字符串,这些名称来自带有Oracle数据库的文本框

来自分类Dev

如何使用逗号分隔python中变量中的两个字符串

来自分类Dev

将具有两个字符串参数的对象转换为逗号分隔的字符串

来自分类Dev

在两个字符串之间绑定 source.filter VB.net

来自分类Dev

在两个或多个文本框中重复字符 VB Net

Related 相关文章

  1. 1

    在VB.NET中关联两个文本字符串的最佳方法

  2. 2

    NET字符串长度用多行分割多行文本框文本

  3. 3

    比较两个字符串数组与concat字符串VB.NET

  4. 4

    将文本框字符串转换为Double VB.NET

  5. 5

    如何在ASP.NET VB中比较两个字符串

  6. 6

    VB.NET在字符串中两个单词之间查找文本

  7. 7

    VB.NET-如何使文本框每次按键仅接受一个字符?

  8. 8

    VB.net用HTML字符串填充文本框

  9. 9

    CSV上传后,将逗号分隔的字符串转换为两个字符串[PHP]

  10. 10

    VB.Net字符串替换,以逗号分隔

  11. 11

    PowerShell用日期和时间替换两个字符串之间的文本

  12. 12

    NET字符串长度用多行分割多行文本框文本

  13. 13

    后台工作完成后,将两个字符串放入不同的标签中-vb.net

  14. 14

    将文本框字符串转换为Double VB.NET

  15. 15

    用逗号连接两个字符串

  16. 16

    如何在ASP.NET VB中比较两个字符串

  17. 17

    VB.NET在字符串中两个单词之间查找文本

  18. 18

    VB .Net在文本框的每一行的开头和结尾添加字符串

  19. 19

    从字符串中提取2个数字以填充文本框vb.net

  20. 20

    提取两个字符串之间的文本并对其执行操作

  21. 21

    VB.NET-如何使文本框每次按键仅接受一个字符?

  22. 22

    在ASP.NET(VB)中串联两个字符串时出现奇怪的行为

  23. 23

    获取两个字符串之间的文本正则表达式VB.Net

  24. 24

    VB.NET从文本框中获取文本而无需特定的字符串

  25. 25

    Asp.net,Oracle sql,基本上从两列名称中搜索多个字符串,这些名称来自带有Oracle数据库的文本框

  26. 26

    如何使用逗号分隔python中变量中的两个字符串

  27. 27

    将具有两个字符串参数的对象转换为逗号分隔的字符串

  28. 28

    在两个字符串之间绑定 source.filter VB.net

  29. 29

    在两个或多个文本框中重复字符 VB Net

热门标签

归档