我一直试图在欧拉上解决这个问题。我想将一个整数转换为一个字符串数组。在此之后,我想将每个字符串转换为一个字符数组,这是我的代码开始给出错误的地方。
namespace Problem_52_Euler
{
class Program
{
static void Main(string[] args)
{
for (uint i = 1; i < 1000000000; i++)
{
string[] xint = new string[i];
char[] xArray = xint[i].ToCharArray(); // This line is going out of bounds
char[] yArray = xint[i + 1].ToCharArray();
for (uint j = 0; j < xArray.Length; j++)
{
char xInteger = xArray[j];
for (uint k = 0; k < yArray.Length; k++)
{
char yInteger = yArray[k];
if (xArray[0] == yArray[k] && xArray[0 + j] == yArray[k])
{
Console.WriteLine(" " + i);
}
}
}
}
}
}
}
答案 0 :(得分:2)
当您创建长度为i
的数组时,它将包含从0
到i-1
的索引。
如果i
例如是4,new string[i]
将生成索引为0,1,2和3的数组。您无法访问索引4处的项目,因为它不会存在。
注意:您不需要将字符串转换为字符数组来访问字符,您可以访问字符串的字符,就像它是一个字符数组一样。
此外,创建字符串数组不会创建任何字符串,只能用于引用字符串。如果您只是创建数组,然后尝试从中获取一个字符串,您将获得一个空引用。