2017-05-11 5 views
0

사용자 입력 검색 쿼리를 찾기 위해 필자가 얼마나 멀리 가야하는지 결정하려고합니다. 나는 system.length의 다양한 속성을 사용하려고 시도했지만, 나는 내가 원했던 것을 얻을 수 없었다. 필자는 본질적으로 숫자 세트를 입력 할 수 있고 콘솔이 쿼리에 얼마나 많은 숫자를 반환 하는지를 원할 것입니다. 구분 기호는 PiClass.CalculatePi이며 영원히 실행되지 않습니다. 여기검색 쿼리를 찾기 전의 카운트 넘버

Console.WriteLine("type string to search"); 

    string searchForThis = Console.ReadLine(); 

    var PiClass = new PiClass(); 
    double.TryParse(PiClass.CalculatePi(3), out double pi); 

    string piString = pi.ToString(); 

    if (piString.Contains(searchForThis) == true) 
    { 
     Console.WriteLine("Located"); 
    } 
    else 
    { 
     Console.WriteLine("Please expend search"); 
    } 

    Console.Read(); 
+1

왜 파이를 '이중화'하고 나서 '문자열'로 다시 변환해야합니까? string.IndexOf' 함수를 사용하여 일치하는 부분 문자열의 첫 번째 인덱스를 얻으려고한다고 생각합니다. –

+0

'PiClass.CalculatePi'는 무엇을합니까? 현재 코드에서 작동하지 않는 것은 무엇입니까? –

+1

tryparse는 미래의 변경을 위해 거기에, 나는 그것을 이중으로 수학적으로 사용할 수 있어야 할거야하지만 또한이 부분에 대한 문자열 형태로 필요합니다 .. 나는 문자열을 검색 코드를 geign 오전 , 그리고 검색된 문자열 앞에 얼마나 많은 문자가 올지 말해주세요. –

답변

0

나중에 가서 : 내가 코멘트에서 언급 한 바와 같이

 Console.WriteLine("type string to search"); 
    string searchForThis = Console.ReadLine(); 
    var PiClass = new PiClass(); 
    double.TryParse(PiClass.CalculatePi(3), out double pi); 
    string piString = pi.ToString(); 
    int location = piString.IndexOf(searchForThis); 
    if (location >=0) 
    { 
     Console.WriteLine("Located at index: " + location.ToString()); 
    } 
    else 
    { 
     Console.WriteLine("Please expend search"); 
    } 
    Console.Read(); 
+0

테스트 piString.Contains 정말 여기에 필요하지 않습니다, 만약 indexOf 그것을 찾을 수없는 -1을 반환합니다, 그래서 당신은 그냥 위치를 확인하실 수 있습니다> = 0 – JBdev

+0

완벽하게 작동합니다. 고맙습니다 –

0

string.IndexOf를 사용할 수 있습니다

string piString = pi.ToString(); 
int index = piString.IndexOf(searchForThis); 

if (index != -1) { 
    // There is a subsrting you are looking for. 
} 

그리고 index 전에 문자열을 검색 온 문자의 수를 나타냅니다.