2014-04-25 2 views
-5

알고 싶습니다 문자열을 int 형식으로 변환 할 수 있습니다.
문자열 형식을 정수로 변환 할 수 있습니다 ..?

예 : 나는 int 유형의 변수 상태에 텍스트 상자 값을 저장해야합니다.
그래서, 그것을 저장할 수 있습니까 ..?

내 입력 값 I이 사용 int.Parse (textbox1.text)를 통과하면
는 입력 문자열 정확한 포름산 아닌 나타내고, 스트링 "첸나이"이다. 편집 한 후

int state=textbox1.text; 

답변

1

:
(당신의 문자열 말로에있는 경우) 존 소총은 자신의 게시물에 가리 켰을 때 사전 매퍼을 찾고, 또는 열거하는 것 같습니다 :

enum MyEnum 
    { 
     Chennai = 1, 
     ABCD = 2, 
    } 

그리고 당신은 정수로 선택한 값을 변환 할 : 사용이 :

Enum.TryParse

사용 : 당신의 편집하기 전에

MyEnum val; 
    if (Enum.TryParse(textbox1.Text, out val)) 
    { 
     int myIntVal = (int)val; // myIntVal = 1 
    } 
    else 
    { 
     // error 
    } 

int.Parse

int val = int.Parse(textbox1.Text); 

편집으로 인해 @huMpty 덤프 티의 요청에 :
당신이 텍스트 상자의 입력 값에 대한 확실하지 않은 경우 , int.TryParse를 사용하십시오 :

int.TryParse

int val; 
if(int.TryParse(textbox1.Text, out val)) 
{ 
    // val is a number 
} 
else 
{ 
    // val isn't a number 
} 
+0

텍스트 상자에 문자열 값이 포함 된 경우이 휴식 것입니다! –

+0

응용 프로그램이 충돌하는 경우에도 중단됩니다. –

+0

어쨌든, 나는 게시물을 편집했습니다. –

3

이제 우리는 당신이 당신의 원래 질문의 명백한 해석되는, 전혀 숫자 문자열을 구문 분석하지 않으려는 것 소리가 좀 더 정보

있습니다.

지도 숫자로 된 문자열 인 경우 사전 정의 된지도가 필요합니다. 예 :

private static readonly Dictionary<string, int> StateNameMap = new 
    Dictionary<string, int>() { 
    { "New Jersey", 1 }, 
    { "California", 2 }, 
    ... 
}; 

은 그럼 당신은 사용할 수 있습니다

int state; 
if (StateNameMap.TryGetValue(textbox1.Text, out state)) 
{ 
    // Success 
} 
else 
{ 
    // Input was not a known state name. What do you want to do? 
} 

당신은 확실히 int.Parse 또는 int.TryParse를 사용하여 문자열을 정수로 구문 분석 할 수

원래 대답.

// This will just throw an exception if the text is not a valid int 
int state = int.Parse(textbox1.Text); 

또는 : : 예를 들어

int state; 
if (int.TryParse(textbox1.Text, out state)) 
{ 
    // Success! Use state 
} 
else 
{ 
    // Invalid text - what do you want to do? 
} 

이, .NET에서 구문 분석 DateTime을 포함한 다른 숫자 유형에 대한 일반적인 패턴이다.

또한 숫자가 정수가 아닌 정수 값이 아닌 예상되는 문화권을 고려해야하지만 고려해야 할 사항도 고려해야합니다.

+0

나는 이미이 방법을 시도했다 .. 작동하지 않았다 .. –

+0

@farokemoahmed : a) 당신은 질문에 그렇게 말 했어야했다. b) 당신은 우리가 어떤 방식으로 * 그것이 작동하지 않았는지 말해야합니다; c)'textbox1.Text'의 값을 알려 주어야합니다. 나는 int.Parse' *가 작동하는지, 만약 당신이 올바른 입력을 주면 ... –

+0

나는 그것을 업데이트했다는 것을 내 포스트에서 확인해 보라. 나는 텍스트 상자에 문자열 값을 전달하고있다. 예 : 상태 이름 New Jercy처럼 –

0

사용 Int32.TryParse

int state; 

int.TryParse(textbox1.text, out state); 
+0

반환 값을 무시하지 않고 한 가지 희망합니다. 'TryParse'를 호출하기 전에'state'를 초기화하는 것은 의미가 없습니다. –

+0

하지만 여전히 반환 값을 무시하고 있습니다 ... –

관련 문제