我在这个程序中遇到了问题,这个程序是用来将Unicode字符转换成32位格式的;在从零开始的索引部分。索引需要从零开始吗?
为什么不能从1开始呢?请把这部分解释好。
int a;
textBox2.Text = " ";
for (int i = 0; i < textBox1.Text.Length; i++)
{
a = Char.ConvertToUtf32(textBox1.Text.Substring(i, 1), 0);
textBox2.Text = a.ToString();
if (textBox1.Text == " ")
{
textBox2.Text = " " ;
}
}发布于 2018-08-19 16:38:41
字符串类似于数组,对于任何数组类型,c#中的索引都从0开始。至于代码的效率,您还可以将if检查移到循环内的外部,因为它独立于任何索引。参见下面的示例代码:
/// <param name="source"> equivalent to TextBox1.Text in original post</param>
public static int[] ConvertToUtf32(string source)
{
int[] result = new int[source.Length]; //equivalent to all the chars displayed in TextBox2.Text in original post
if (source.Equals(" "))
{
result[0] = ' ';
}
else
{
for (int i = 0; i < source.Length; i++)
{
result[i] = Char.ConvertToUtf32(source.Substring(i, 1), 0);
}
}
return result;
}https://stackoverflow.com/questions/51915640
复制相似问题