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 stringzaman bir olacağından eminseniz int:
int myInt = int.Parse(myString);
stringGerçekten bir intilk 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.TryParsedaha güvenlidir çünkü içine başka bir şey koyarsanız varString(örneğin "fsfdsfs") bir istisna elde edersiniz. Kullanarak int.TryParsedize 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 someStringiçine someNumericve dönüş resultdönüşüm, başarılı olursa bağlıdır truedönüşüm başarılı olursa ve falsedönüşüm başarısız olursa. Dönüşüm, Int32.Parseyö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);