该程序遇到了麻烦,该程序用于将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 = " " ;
}
}
答案 0 :(得分:0)
字符串类似于数组,对于任何数组类型,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;
}