Có vô số các trường hợp mà bạn cần phải chuyển đổi một chuỗi kí tự (string) sang số nguyên. Trong đó, có 3 cách phổ biến sử dụng C#, gồm int.Parse(), int.TryParse(), Convert.ToInt32().

Từ khóa Int là một biệt hiệu cho kiểu System.Int32, nó được dùng để khai báo biến có thể giữ 32-bit số nguyên có dấu trong khoảng từ -2,147,483,648 đến 2,147,483,647. Int32 là một kiểu dữ liệu có sẵn đại diện cho 32-bit số nguyên có dấu. Bạn có thể chuyển một chuỗi sang dạng Int sử dụng cách dưới đây.

Cách chuyển một chuỗi sang dạng Int bằng Int32.Parse()

Int32.Parse() là cách dễ nhất chuyển một chuỗi sang một số nguyên. Nó xem một chuỗi là một tham số. Ví dụ:

string numberString = “8”;

int i = int.Parse(numberString); 

Console.WriteLine("Value of i: {0}", i);

Phương thức int.Parse() sử dụng một biến chuỗi numberString và chuyển nó thành số nguyên int.

Nhược điểm của phương pháp này là nếu ta không truyền đúng định dạng thì sẽ trả về ngoại lệ. Để tránh trường hợp này, bạn có thể sử dụng khối lệnh try-catch trong khi sử dụng int.Parse(). Ví dụ như sau:

string numString = "12"; 

try

{

    int num = int.Parse(numString);              

}

catch(FormatException ex)

{

    Console.WriteLine(ex.Message);                

}

Một giải pháp khác là dùng TryParse()mà bài viết sẽ đề cập bên dưới.

Cách để chuyển đổi chuỗi sang số nguyên Int bằng Convert.ToInt32()

Convert.ToInt32()là một phương thức tĩnh được cung cấp từ C# để chuyển chuỗi sang số nguyên dạng 32bit có dấu. Phương thức này sử dụng biến chuỗi như input và trả về một số nguyên. Tham khảo ví dụ sau:

string numString = "123";

int num = Convert.ToInt32(numString);

Trong khối lệnh trên, chúng ta đã khai báo một biến chuỗi, numString, và gán cho nó một giá trị. Sau đó chúng ta sẽ dùng Convert.ToInt32() để chuyển đổi chuỗi thành 1 số nguyên và gán nó cho một biến tên num.

Phương thức Convert.ToInt32() có hai ngoại lệ, FormatException OverflowException và có chuyển thể chuyển đổi một giá trị null to 0 mà không nảy ra ngoại lệ.

Cách chuyển đổi chuỗi sang số nguyên Int bằng Int32.TryParse()

Khi được so sánh với phương thức int.Parse(), int.TryParse() là một cách an toàn để chuyển đổi chuỗi sang số nguyên 32-bit có dấu.

Phương thức này sử dụng một biến chuỗi và một tham số out và trả về một giá trị true của kiểu bool nếu phân tích thành công. Kết quả của phân tích được lưu trữ trong tham số out.

string numString = "12";

 

if (int.TryParse(numString, out int num))

{

// Conversion successful, do something with num.

    Console.WriteLine("Successful");

    Console.WriteLine(num);

}

else

{

// Conversion failed, handle the error.

    Console.WriteLine("Unsuccessful..");

}

Trong đoạn code trên, chúng ta đang thử phân tích một biến chuỗi numString thành số nguyên bằng phương thức int.TryParse(). Kết quả được lưu trong biến num nếu chuyển đổi thành công. Nếu chuyển đổi thất bại, biến num sẽ được gán giá trị mặc định.

Trong bài viết trên, chúng ta đã nhìn qua một số phương thức để chuyển đổi chuỗi sang số nguyên trong C# bằng Parse(), TryParse(), và Convert(). Hy vọng bài viết sẽ hữu ích cho bạn.

Nguồn: www.freecodecamp.org

VietnamWorks inTECH