2011-02-08 7 views
2

선택한 텍스트에 문자가 포함되어 있거나 숫자 이외의 문자가 포함되어있는 경우 작업을 수행하려면 응용 프로그램이 필요합니다.C# 숫자 및 문자

문자열이 문자 또는 숫자인지 어떻게 알 수 있습니까?

매우 쉽지만이 코드를 작성할 수 없습니다.

+0

에이를 수 수, 당신은 단지 문자가 포함되어 있는지 확인하고자하거나 숫자 만 포함 된 경우 제발 더 구체적으로? – magnattic

+0

@atticae - 말하기가 어렵지만, 우리의 대답 중에 그는 그가 사용할 수있는 것을 찾아 낼 것입니다. –

답변

3

이처럼 수행하려고 할 수 있습니다

string myString = "100test200"; 
long myNumber; 
if(long.TryParse(myString, out myNumber){ 
    //text contains only numbers, and that number is now put into myNumber. 
    //do your logic dependent of string being a number here 
}else{ 
    //string is not a number. Do your logic according to the string containing letters here 
} 

당신이 문자열이 하나 이상을 숫자, 그리고 모든 숫자가 포함되어있는 경우, 참조 대신이 논리를 사용합니다.

if (myString.Any(char.IsDigit)){ 
    //string contains at least one digit 
}else{ 
    //string contains no digits 
} 
+0

long.Parse는 숫자가 2보다 큰 경우 실패합니다.^63 – Manu

+0

@Manu -이 경우 두 번째 접근 방식을 사용할 수 있습니다. 실제로 첫 번째 접근법은 실제로 번호를 사용해야하는 경우에 유용합니다. 숫자가 아닌 문자가 있음을 알기 위해 노력하고 있기 때문에 그럴 것입니다. –

+0

감사합니다. 그것은 무엇을 찾고 있었는지. 그러나 myString이 분수라고 생각하면 그것이 문자라고 생각하면 또 다른 문제가 있습니다. –

2
static bool IsNumeric(string str) 
{ 
    foreach(char c in str) 
    if(!char.IsDigit(c)) 
     return false; 
    return true; 
} 
+3

또는'str.All (char.IsDigit);'짧게;) –

1

정규 표현식

string str = "1029"; 
if(Regex.IsMatch(str,@"^\d+$")){...} 
관련 문제