[C#] String을 Int로 변환하려면 어떻게해야합니까?

나는 그것을 데이터베이스에 저장 TextBoxD1.Text하기 위해로 변환하고 싶습니다 int.

어떻게해야합니까?



답변

이 시도:

int x = Int32.Parse(TextBoxD1.Text);

또는 더 나은 아직 :

int x = 0;

Int32.TryParse(TextBoxD1.Text, out x);

또한 반환 값 Int32.TryParsea bool를 사용하면 반환 값을 사용하여 구문 분석 시도 결과에 대한 결정을 내릴 수 있습니다.

int x = 0;

if (Int32.TryParse(TextBoxD1.Text, out x))
{
    // you know that the parsing attempt
    // was successful
}

궁금한 점과의 차이점은 다음 ParseTryParse같습니다.

TryParse 메서드는 Parse 메서드와 비슷하지만 변환에 실패한 경우 TryParse 메서드는 예외를 throw하지 않습니다. s가 유효하지 않고 구문 분석 할 수없는 경우 예외 처리를 사용하여 FormatException을 테스트 할 필요가 없습니다. – MSDN


답변

Convert.ToInt32( TextBoxD1.Text );

텍스트 상자의 내용이 유효하다고 확신하는 경우이 옵션을 사용하십시오 int. 더 안전한 옵션은

int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );

사용할 수있는 기본값이 제공됩니다. Int32.TryParse또한 구문 분석이 가능한지 여부를 나타내는 부울 값을 반환하므로 if명령문 의 조건으로 사용할 수도 있습니다 .

if( Int32.TryParse( TextBoxD1.Text, out val ){
  DoSomething(..);
} else {
  HandleBadInput(..);
}


답변

int.TryParse()

텍스트가 숫자가 아닌 경우 발생하지 않습니다.


답변

int myInt = int.Parse(TextBoxD1.Text)

다른 방법은 다음과 같습니다.

bool isConvertible = false;
int myInt = 0;

isConvertible = int.TryParse(TextBoxD1.Text, out myInt);

둘의 차이점은 텍스트 상자의 값을 변환 할 수없는 경우 첫 번째 값은 예외를 throw하는 반면 두 번째 값은 false를 반환한다는 것입니다.


답변

문자열을 구문 분석해야하며 문자열이 실제로 정수 형식인지 확인해야합니다.

가장 쉬운 방법은 다음과 같습니다.

int parsedInt = 0;
if (int.TryParse(TextBoxD1.Text, out parsedInt))
{
   // Code for if the string was valid
}
else
{
   // Code for if the string was invalid
}


답변

char에서 Convert.ToInt32 ()를 사용할 때주의하십시오! UTF-16을
반환합니다문자 코드를 !

[i]인덱싱 연산자를 사용하여 특정 위치에서만 문자열에 액세스하면 !가 char아닌 a를 반환 합니다 string.

String input = "123678";
                    ^
                    |
int indexOfSeven =  4;

int x = Convert.ToInt32(input[indexOfSeven]);             // Returns 55

int x = Convert.ToInt32(input[indexOfSeven].toString());  // Returns 7


답변

int x = 0;
int.TryParse(TextBoxD1.Text, out x);

TryParse 문은 구문 분석이 성공했는지 여부를 나타내는 부울을 반환합니다. 성공하면 구문 분석 된 값이 두 번째 매개 변수에 저장됩니다.

자세한 내용은 Int32.TryParse 메서드 (String, Int32) 를 참조하십시오.