저는 C#에서 작업중인 프로그램과 관련된 빠른 질문을 가지고 있습니다. 이 같은 숫자의 긴 목록, 텍스트 파일이 있습니다문자열 배열을 텍스트 파일에서 double 배열로 변환 할 때 오류 메시지가 발생했습니다.
41.673993158 0.000000000 258.436256
41.673992499 -0.000001364 258.462068
41.673991841 -0.000002700 258.487880
을 그리고 더블 별도로 각 번호를 포함하는 배열을 생성 (또는 float) 할 필요가있다. 즉
Array[0] = 41.673993158
Array[1] = 0.000000000 ...etc.]
는 지금, 나는 배열의 번호를 가지고 있지만 모든 문자열입니다. 나는 다음 코드를 가지고있다 :
string text = System.IO.File.ReadAllText("/Applications/Unity/Projects/Underwater/SampleFile.txt");
if (text != null)
{
string[] strings = text.Split (' ');
System.Console.WriteLine("Contents of SampleFile = ");
for (int i = 0; i < strings.Length; i++)
{
Console.WriteLine (strings[i]);
}
}
이 코드는 완벽하게 작동한다. 그것은 콘솔에서 별도의 줄에 각 번호를 출력, 각 번호는 배열에 자신의 장소가 있다고 생각하게됩니다. 그러나, 그들은 모두 여전히 문자열, 그래서 나는이 코드를 사용하여 더블로 변환하려고하면
double[] nums = new double[strings.Length];
for (int i = 0; i < strings.Length; i++)
{
nums[i] = Convert.ToDouble(strings[i]);
}
나는 예외 오류를 던져, 그리고 왜 알아낼 수 없습니다. 다음은 오류 메시지입니다.
System.FormatException이 발생했습니다.
알 수없는 숯불
세부 사항 : double.Parse (들 = "258.436256 \ 연구 \ n41.673992499"제공 = {EN-CA})
System.Convert.ToDouble (값 = " 258.436256 \ 연구 \의 n41.673992499 ")
내가 지금 어떤 도움을 크게 감사합니다, 두 배의 배열을 때까지 내 프로그램에 이동할 수 없습니다!
나는 많은 시간을 가지지 않는다. 그 이유는 대답이 없다. 개인적으로 나는 문자열 배열에서 항목을 가져 오는 foreach 루프를 만들고, 그 항목을 double로 변환 한 다음 새로운 double에 추가한다. 배열 ... 이것은 길어지는 솔루션이지만 작동해야합니다 ... 더 짧고 더 효율적인 경우 다른 솔루션을 찾으십시오. – Brendon