2012-08-08 2 views
-1

내가 계산으로 2를 얻을 필요가 문자열을선행 공백 문자열에있는 문자 앞에 - 카운트 접두사 공간

  -123 

있습니다.

   -12& 3 

나는 4를 카운트해야합니다. (어떤 경우에는 '-'앞에 공백이 3 개 필요합니다.).

내가 사용하는 코드는 내가 제약, 즉 검사에 합격하려면 어떻게

stringValue.Count(countSpace => countSpace == ' '); 

입니다. 이 경우 "-"대시를 사용하고 "-"앞뒤에 공백을 넣습니다. 하나 제로 대시가있는 가정

+0

귀하의 질문의 문구를 수정 시도, 그것은 당신이 후에 무엇인지 아주 명확하지 않다. –

+0

대시가 여러 개인 것에 대해 걱정해야합니까? –

+0

또한 대시를 둘러싼 공백 수를 원하십니까? –

답변

1

이 작동합니다 :

public static int CountSurroundingSpaces(string stringValue, char constraint) 
{ 
    return stringValue.SkipWhile(c => c != constraint) 
         .Skip(1) 
         .TakeWhile(c => c == ' ') 
         .Count() + 
      stringValue.Reverse() 
         .SkipWhile(c => c != constraint) 
         .Skip(1) 
         .TakeWhile(c => c == ' ') 
         .Count(); 
} 
0

당신은 후행 공백없이 원래의 문자열을 얻을 다음 원래의 길이의 차이를 계산 TrimStart() 메소드를 사용할 수 있습니다 및 하나 손질 :

문자열에 공백의 수를 계산하려면

stringValue.Length - stringValue.TrimStart().Length 

편집의에 의해 분할 오메 구분이 시도 :

static IEnumerable<int> GetSpaceCounts(string stringValue, char separator) 
    { 
     return stringValue.Split(separator).Select(s => s.Count(c => c == ' ')); 
    } 

이 코드를 테스트하기 위해 사용할 수 있습니다

string stringValue = " -123 12- "; 

    foreach (int i in GetSpaceCounts(stringValue, '-')) 
     Console.WriteLine(i); 

    Console.ReadLine(); 
관련 문제