0

将字符串转换为表示字符代码的短整数数组的最快方法是什么?

我现在正在使用它,但它可能会更快:

Dim shortsarray(mystring.Length - 1) as Short
For i As Integer = 0 To mystring.Length - 1
  shortsarray(i) = AscW(mystring.Chars(i))
Next

谢谢。

4

2 回答 2

1

我不知道你想解决什么样的问题。但是,作为替代方案,您可以将字符串转换为字符数组

Dim chars() As Char = mystring.ToCharArray()
于 2012-04-10T19:46:20.843 回答
0
Dim shortsarray(mystring.Length - 1) as Short //One calculation
For i As Integer = 0 To mystring.Length - 1   //One calculation, repeats n times
  shortsarray(i) = AscW(mystring.Chars(i))    //Three calculations, repeats n times
Next

因此,这应该在 O(3n+1) 或 O(n) 中运行。这与输入的长度呈线性关系,并且由于您正在进行字符转换,因此您无法期望得到太大的改进。我认为这可能与您预期的一样好,尽管可能有一个库可以一次性转换整个单词,从而使您的代码更干净。

如果您需要提高性能,您需要首先分析您的整个程序。这个片段可能不是问题。

于 2012-04-10T19:25:41.517 回答