Jak przekonwertować ciąg na liczbę całkowitą w C #?
Jak przekonwertować ciąg na liczbę całkowitą w C #?
Odpowiedzi:
Jeśli masz pewność, że przeanalizuje poprawnie, użyj
int.Parse(string)
Jeśli nie, użyj
int i;
bool success = int.TryParse(string, out i);
Uwaga! W poniższym przypadku ibędzie równe 0, a nie 10 po TryParse.
int i = 10;
bool failure = int.TryParse("asdf", out i);
Dzieje się tak, ponieważ TryParseużywa parametru out , a nie parametru ref .
int myInt = System.Convert.ToInt32(myString);
Jak wspomniało kilku innych, możesz również użyć int.Parse()i int.TryParse().
Jeśli masz pewność, że stringzawsze będzie int:
int myInt = int.Parse(myString);
Jeśli chcesz sprawdzić, czy stringto naprawdę intpierwsza:
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);
lub
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParsejest bezpieczniejsze, ponieważ jeśli wstawisz coś innego varString(na przykład "fsfdsfs"), dostaniesz wyjątek. Używając int.TryParsewhen string nie można przekonwertować na int, zwróci 0.
Jeśli jesteś pewien, że masz „rzeczywistą” liczbę w swoim ciągu lub nie przeszkadza Ci żaden wyjątek, który może się pojawić, użyj tego.
string s="4";
int a=int.Parse(s);
Aby uzyskać większą kontrolę nad procesem, użyj
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;
}
Zrób coś takiego:
var result = Int32.Parse(str);
Testowane są tutaj 4 techniki.
Najszybszy okazał się następujący sposób:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
„s” to ciąg znaków, który chcesz przekonwertować na liczbę całkowitą. Ten kod zakłada, że podczas konwersji nie będzie żadnych wyjątków. Więc jeśli wiesz, że twoje dane łańcuchowe zawsze będą miały wartość typu int, powyższy kod jest najlepszym sposobem na osiągnięcie czystej prędkości.
Na końcu „y” będzie miało wartość int.
bool result = Int32.TryParse(someString, out someNumeric)
Ta metoda spróbuje przekonwertować someStringna someNumerici zwróci resultzależność, jeśli konwersja powiedzie się, truejeśli konwersja zakończy się powodzeniem i falsejeśli konwersja się nie powiedzie. Zwróć uwagę, że ta metoda nie zgłosi wyjątku, jeśli konwersja nie powiedzie się, tak jak w przypadku Int32.Parsemetody, a zamiast tego zwraca zero dla someNumeric.
Aby uzyskać więcej informacji, możesz przeczytać tutaj:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Jak przekonwertować ciąg na liczba całkowita w C #