2012-04-10 2 views
0

Что такое быстрый способ преобразования строки в массив коротких целых чисел, представляющих коды символов?преобразование строки в массив целых чисел быстро

Я теперь использую это, но это, вероятно, может быть гораздо быстрее:

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

Спасибо.

+1

Какую кодировку символов вы ищите? ASCII? И почему вы ищете что-то «быстрее»? У вас проблемы с производительностью, которые вы убедились в этом коде? – Oded

+0

@Oded Я имею в виду значения Unicode (когда функция Strings.AscW возвращается) – Peladao

+0

@Oded Этот код будет работать много, поэтому для повышения эффективности (и обучения чему-то). Мне нравится знать самый быстрый способ. – Peladao

ответ

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). Это линейно по длине ввода, и вы не можете многого ожидать от этого, так как вы делаете характерное преобразование. Я думаю, что это, вероятно, так хорошо, как вы можете ожидать, хотя может быть библиотека, которая будет просто конвертировать целое слово за один раз, делая ваш код чище.

Если вам нужно увеличить производительность, вы хотите сначала профилировать всю свою программу. Этот фрагмент не может быть проблемой.

1

Я не знаю, какую проблему вы пытаетесь решить. Однако в качестве альтернативы вы можете преобразовать строку в массив символов

Dim chars() As Char = mystring.ToCharArray() 
+0

OP не хочет создавать новый char-массив, но короткий массив для каждого символа в строке. http://msdn.microsoft.com/en-us/library/zew1e4wc%28v=vs.90%29.aspx –

+0

Я знаю. Я просто хотел показать эту возможность в качестве альтернативы. Может быть, он может использовать его, может быть, нет. –

+0

@ Оливье Нет, мне нужен комплект шорт – Peladao

Смежные вопросы