Как преобразовать строку в целое число в C#

Как я преобразовываю строку в целое число в C#?

85
задан Raktim Biswas 27 June 2016 в 05:01
поделиться

8 ответов

Если вы уверены, что у вас есть «реальное» число в вашей строке, или вам не страшны любые исключения, которые могут возникнуть, используйте это.

string s="4";
int a=int.Parse(s);

Для большего контроля над процессом используйте

string s="maybe 4";
int a;
if (int.TryParse(s, out a)) {
    // it's int;
}
else {
    // it's no int, and there's no exception;
}
5
ответ дан 24 November 2019 в 08:15
поделиться

Если вы уверены, что синтаксический анализ будет выполнен правильно, используйте

int.Parse(string)

Если нет, используйте

int i;
bool success = int.TryParse(string, out i);

Внимание! В приведенном ниже случае i будет равно 0, а не 10 после TryParse .

int i = 10;
bool failure = int.TryParse("asdf", out i);

Это связано с тем, что TryParse использует параметр out , а не параметр ref .

135
ответ дан 24 November 2019 в 08:15
поделиться
int i;
string whatever;

//Best since no exception raised
int.TryParse(whatever, out i);

//Better use try catch on this one
i = Convert.ToInt32(whatever);
3
ответ дан 24 November 2019 в 08:15
поделиться
string varString = "15";
int i = int.Parse(varString);

или

int varI;
string varString = "15";
int.TryParse(varString, out varI);

int.TryParse более безопасен, поскольку если вы поместите что-то еще в varString (например, «fsfdsfs»), вы получите исключение. Используя int.TryParse , когда строка не может быть преобразована в int, она вернет 0 .

6
ответ дан 24 November 2019 в 08:15
поделиться
int a = int.Parse(myString);

или, что еще лучше, изучите int.TryParse(string)

9
ответ дан 24 November 2019 в 08:15
поделиться
int myInt = System.Convert.ToInt32(myString);

Как уже говорили другие, вы также можете использовать int.Parse() и int.TryParse().

Если вы уверены, что string всегда будет int:

int myInt = int.Parse(myString);

Если вы хотите проверить, действительно ли string является int, сначала:

int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
{
    int plusOne = myInt + 1;
}
22
ответ дан 24 November 2019 в 08:15
поделиться

Сделайте что-нибудь вроде:

var result = Int32.Parse(str);
5
ответ дан 24 November 2019 в 08:15
поделиться
int i;

string result = Something;

i = Convert.ToInt32(result);
0
ответ дан 24 November 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: