【问题标题】:convert saved string of numbers into an array of integers将保存的数字字符串转换为整数数组
【发布时间】:2013-10-01 16:41:37
【问题描述】:

我在名为 num_str 的 var 中有一个逗号分隔的数字字符串

num_str 的内容如下所示:“1,2,3,4,5”等

我正在寻找一种方法将 num_str 添加到表达式中,以将其中包含的数字字符串转换为整数数组

我想确保我可以简单地引用“num_str”来获取数字,而不是像 {"1,2,3,4,5"} 那样拼写出来

我试过了,其中 'num_str' 包含数字

Dim test As String = Nothing
Dim result() As Integer = Int32.TryParse(num_str.Split(","c))
For i = 0 To result.Length - 1
   test += result(i)
Next

但这不起作用

我正在寻找的是带有数字数组的结果

【问题讨论】:

  • 这段代码转换错误(你不能“一次性”转换整个数组;但是它的元素。请记住,单行的 huMpty duMpty 答案实际上隐藏了一个遍历所有数组的循环元素)。在这个“小问题”之后,它打算将所有数字添加到一个名为 test 的变量中(它也被错误地声明,因为它应该是一个整数)。从您在我的(已删除)答案中的评论来看,您似乎并没有在寻找那个。我建议你准确地解释你想要什么(反正不想进一步帮助你)。
  • 在 num_str 我有一串数字。当我搜索 MAX 时,它给了我一个文本匹配项(前面有“9”的最高数字)。所以我需要将这些数字转换为整数,将它们存储在一个数组中,然后找到 MAX 值。这就是我想要做的。再次感谢。
  • 这不是你的代码所做的,这不是你的问题中写的,因此没有人会理解它。我建议您更新您的问题以反映您想要什么:帮助您完成如此简单的请求可能很简单,也可能非常困难;它是由你决定。我个人不会帮助你;如果你想接受我的建议,就去做,否则不要。

标签: arrays vb.net


【解决方案1】:
Dim totalValue = str.
                 Split(","c).
                 Select(Function(n) Integer.Parse(n)).
                 Sum()

【讨论】:

    【解决方案2】:

    试试这个创建整数数组

    Dim numbers = str.Split(","c).[Select](Function(n) Integer.Parse(n)).ToList()
    

    然后你可以使用你现在正在使用的循环将值附加到字符串

    【讨论】:

    • OP 似乎想将所有元素添加到一个变量中(测试),而不是将它们存储到不同的数组中(存储是获得他想要的东西的临时步骤)。无论如何,我不确定您的代码相对于我提出的代码的优势。
    • @varocarbas:好的,我已经更新了答案,就一行!!
    • 我看到了。这是一个相关的第二个答案:) 我个人不太喜欢 LINQ,但确实认为很多人更喜欢它。 (也许你应该设置一些东西来避免错误?)
    • 你到底怎么说很多人喜欢它?? Actullay 不少人不喜欢!!!
    • ?!我应该说每个人吗?我不喜欢它。在复杂的情况下,也许。默认情况下,始终不是:它倾向于使事物看起来与实际不同;您的行基本上与我的代码相同(我的意思是......如果我的代码将转换而不是添加),但没有非数字检查;它也不比我的快。
    【解决方案3】:

    你可以这样做:

    Dim num_str As String = ...
    Dim str() As String = num_str.Split(",")
    Dim result(str.Length - 1) As Integer
    For i = 0 To str.Length - 1
        result(i) = str(i)
    Next
    

    【讨论】:

      【解决方案4】:

      我只是在为一个客户做这个,我发现了一段优雅的小代码,它可以替换你的单个字符串值并很容易有效地将它转换为整数(或更准确地说是“双”),并且可以使用“查找和转换”同样容易。我将其中的一堆写到 GPA 计算器中,将输入的字母等级更改为 GPA 数字格式以进行数学转换和显示,除了这三行和一个小循环之外没有其他任何内容。

      For m = 0 To UBound(myArray)
      myArray(m) = Replace(myArray(m), "thisstring", 0.0)  'integer 0.0 can be any
      Next m
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多