Как преобразовать строку в целое число в С#?
Как преобразовать строку в целое число в С#
Ответы (9)
Если вы уверены, что он будет правильно проанализирован, используйте
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.
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;
}
int a = int.Parse(myString);
или еще лучше, загляните в int.TryParse(string)
string varString = "15";
int i = int.Parse(varString);
or
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParse
безопаснее, так как если вы поместите что-то еще в varString
(например, "fsfdsfs"), вы получите исключение. При использовании int.TryParse
, когда строка не может быть преобразована в int, возвращается 0
.
Если вы уверены, что в вашей строке есть «настоящее» число, или вам удобно любое исключение, которое может возникнуть, используйте это.
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;
}
Сделайте что-нибудь вроде:
var result = Int32.Parse(str);
здесь оцениваются четыре метода.< /а>
Самый быстрый способ оказался следующим:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
«s» — это ваша строка, которую вы хотите преобразовать в int. Этот код предполагает, что у вас не будет никаких исключений во время преобразования. Итак, если вы знаете, что ваши строковые данные всегда будут иметь значение типа int, приведенный выше код — лучший способ добиться чистой скорости.
В конце "y" будет иметь ваше значение int.
bool result = Int32.TryParse(someString, out someNumeric)
Этот метод попытается преобразовать someString
в someNumeric
и вернет result
в зависимости от успешного преобразования, true
в случае успешного преобразования и false
в случае неудачного преобразования. Обратите внимание, что этот метод не будет генерировать исключение, если преобразование не удалось, как это сделал метод Int32.Parse
, и вместо этого он возвращает ноль для someNumeric
.
Для получения дополнительной информации вы можете прочитать здесь:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Как преобразовать строку в целое число в C#
Вы можете использовать либо,
int i = Convert.ToInt32(myString);
or
int i =int.Parse(myString);