C # 'da bir dizeyi tam sayıya nasıl dönüştürebilirim?
C # 'da bir dizeyi tam sayıya nasıl dönüştürebilirim?
Yanıtlar:
Doğru ayrıştıracağından eminseniz,
int.Parse(string)
Değilseniz, kullanın
int i;
bool success = int.TryParse(string, out i);
Dikkat! Aşağıdaki durumda i
, 10'dan sonra değil, 0'a eşit olacaktır TryParse
.
int i = 10;
bool failure = int.TryParse("asdf", out i);
Bunun nedeni TryParse
, ref parametresi değil, bir çıkış parametresi kullanmasıdır .
int myInt = System.Convert.ToInt32(myString);
Diğerlerinin de bahsettiği gibi int.Parse()
ve kullanabilirsiniz int.TryParse()
.
Her string
zaman bir olacağından eminseniz int
:
int myInt = int.Parse(myString);
string
Gerçekten bir int
ilk olup olmadığını kontrol etmek isterseniz :
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;
}
string varString = "15";
int i = int.Parse(varString);
veya
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParse
daha güvenlidir çünkü içine başka bir şey koyarsanız varString
(örneğin "fsfdsfs") bir istisna elde edersiniz. Kullanarak int.TryParse
dize int dönüştürülür edilemez zaman dönecektir 0
.
Dizenizde "gerçek" sayı olduğundan eminseniz veya ortaya çıkabilecek herhangi bir istisnadan rahatsızsanız, bunu kullanın.
string s="4";
int a=int.Parse(s);
Süreç üzerinde biraz daha kontrol için, şunu kullanın:
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;
}
Şöyle bir şey yapın:
var result = Int32.Parse(str);
Burada 4 teknik kıyaslanmıştır.
En hızlı yol şuydu:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s", int'e dönüştürülmesini istediğiniz dizenizdir. Bu kod, dönüştürme sırasında herhangi bir istisnanız olmayacağını varsayar. Dolayısıyla, dizgi verilerinizin her zaman bir tür int değeri olacağını biliyorsanız, yukarıdaki kod saf hız için gitmenin en iyi yoludur.
Sonunda, "y" sizin int değerinize sahip olacaktır.
bool result = Int32.TryParse(someString, out someNumeric)
Bu yöntem dönüştürmek için çalışacağız someString
içine someNumeric
ve dönüş result
dönüşüm, başarılı olursa bağlıdır true
dönüşüm başarılı olursa ve false
dönüşüm başarısız olursa. Dönüşüm, Int32.Parse
yöntemin yaptığı gibi başarısız olursa ve bunun yerine sıfır döndürürse , bu yöntemin istisna atmayacağını unutmayın someNumeric
.
Daha fazla bilgi için burayı okuyabilirsiniz:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Dize nasıl dönüştürülür C # cinsinden tam sayı
Her ikisini de kullanabilirsiniz,
int i = Convert.ToInt32(myString);
veya
int i =int.Parse(myString);