2017-03-24 3 views
0

그래서, 나는 일련의 숫자를 포함하고 있습니다. 나는 항상 그 문자들 중 3 개를 취하여 그 중 하나의 정수를 만들고 싶다. 나는 이것에 관해 아직 아무것도 발견하지 못했다. 여기 예입니다배열의 3 문자 배열에 정수 C#

string number = "123456xyz"; 

문자열 내가 무엇을 가지고, 이러한 정수 내가

int goal1 = 123; 
int goal2 = 456; 
int goaln = xyz; 

그것은 모든 문자를 통해 이동해야합니다 항상 세 그룹으로 나눌 것입니다. 나는 foreach()가 나를 도울 것이라고 생각하지만, 그것을하는 방법을 확실히 모르겠습니다. 이 같은

+0

'char'는 효율적으로'Int16'이므로'3 char'가'Int48'이어야합니다 (.Net에는 이러한 유형이 없습니다). 따라서 일반적으로 3 개의'char'을 하나의'int' ('Int32')에 팩할 수는 없지만'long' ('Int64')에 넣을 수 있습니다 –

+0

for 루프를 사용하여 문자열 char를 반복 할 수 있습니다 그리고 현재 인덱스에서 모듈을 사용하여 3이 있는지 알아보십시오 – Muckeypuck

답변

1

뭔가 :

var goals = new List<int>(); 
for (int i = 0; i + 2 < number.Length; i += 3) 
{ 
    goals.Add(int.Parse(number.Substring(i,3))); 
} 

이 검사 오류가 없습니다하지만 일반적인 개요를 보여줍니다. Foreach는 한 번에 하나씩 문자를 통과하기 때문에 한 번에 3 개씩보고 싶기 때문에 훌륭한 옵션이 아닙니다.

0
var numbers = (from Match m in Regex.Matches(number, @"\d{3}") 
    select m.Value).ToList(); 

var goal1 = Convert.ToInt32(numbers[0]); 
var goal2 = Convert.ToInt32(numbers[1]); 
... 
+1

코드에 설명 제공을 고려하십시오. – arghtype

0

괜찮 았어! 모든 도움에 감사드립니다!