Làm cách nào để chuyển đổi một chuỗi thành một số nguyên trong C #?
Làm cách nào để chuyển đổi một chuỗi thành một số nguyên trong C #?
Câu trả lời:
Nếu bạn chắc chắn nó sẽ phân tích cú pháp chính xác, hãy sử dụng
int.Parse(string)
Nếu bạn không, hãy sử dụng
int i;
bool success = int.TryParse(string, out i);
Thận trọng! Trong trường hợp dưới đây, isẽ bằng 0, không phải 10 sau TryParse.
int i = 10;
bool failure = int.TryParse("asdf", out i);
Điều này là do TryParsesử dụng tham số out , không phải tham số ref .
int myInt = System.Convert.ToInt32(myString);
Như một số người khác đã đề cập, bạn cũng có thể sử dụng int.Parse()và int.TryParse().
Nếu bạn chắc chắn rằng stringsẽ luôn là int:
int myInt = int.Parse(myString);
Nếu bạn muốn kiểm tra xem stringcó thực sự là người intđầu tiên hay không:
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);
hoặc là
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParsean toàn hơn vì nếu bạn đặt thứ gì đó khác vào varString(ví dụ: "fsfdsfs"), bạn sẽ nhận được một ngoại lệ. Bằng cách sử dụng int.TryParsekhi chuỗi không thể chuyển đổi thành int, nó sẽ trả về 0.
Nếu bạn chắc chắn rằng bạn có số "thực" trong chuỗi của mình hoặc bạn cảm thấy thoải mái với bất kỳ ngoại lệ nào có thể phát sinh, hãy sử dụng điều này.
string s="4";
int a=int.Parse(s);
Để kiểm soát nhiều hơn quy trình, hãy sử dụng
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;
}
Làm điều gì đó như:
var result = Int32.Parse(str);
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);
4 kỹ thuật được đánh giá ở đây.
Cách nhanh nhất hóa ra là như sau:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s" là chuỗi của bạn mà bạn muốn chuyển đổi thành int. Mã này giả định rằng bạn sẽ không có bất kỳ ngoại lệ nào trong quá trình chuyển đổi. Vì vậy, nếu bạn biết dữ liệu chuỗi của mình sẽ luôn là một số loại giá trị int, thì đoạn mã trên là cách tốt nhất để đạt được tốc độ thuần túy.
Cuối cùng, "y" sẽ có giá trị int của bạn.
bool result = Int32.TryParse(someString, out someNumeric)
Phương thức này sẽ cố gắng chuyển đổi someStringthành someNumericvà trả về giá trị resulttùy thuộc nếu chuyển đổi thành công, truenếu chuyển đổi thành công và falsenếu chuyển đổi không thành công. Lưu ý rằng phương thức này sẽ không ném ra ngoại lệ nếu chuyển đổi không thành công như cách Int32.Parsephương pháp đã làm và thay vào đó nó trả về 0 cho someNumeric.
Để biết thêm thông tin, bạn có thể đọc tại đây:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
&
Cách chuyển đổi chuỗi thành số nguyên trong C #