Convert String sang BigInteger trong Java

BigInteger thường được dùng để biểu diễn các số nguyên có giá trị lớn vượt ra ngoài giới hạn của kiểu số int nguyên thủy. Tuy nhiên BigInteger vẫn cho phép thực thi các phép toán cộng, trừ, nhân, chia thông qua các method được xây dựng sẵn.

Vì BigInteger dùng để biểu diễn số nguyên có giá trị lớn nên để khởi tạo một BigInteger object thì chúng ta phải thông thường chúng ta phải biểu diễn giá trị này dưới dạng String và sau đó chuyển sang BigInteger.

Convert String (hệ thập phân) sang BigInteger

Để convert String biểu diễn số nguyên ở hệ thập phân sang BigInteger chúng ta có thể sử dụng BigInteger(String value) constructor.

String inputString = "1234567";
BigInteger result = new BigInteger(inputString);

Convert String (khác hệ thập phân) sang BigInteger

Đối với các String biểu diễn một số nguyên không phải hệ thập phân thì chúng ta không thể sử dụng BigInteger(String value) constructor. Ví dụ đoạn code sau sẽ gây ra NumberFormatException.

String inputString = "290f98";
new BigInteger(inputString);
assertEquals("878", result.toString());

Để giải quyết trường hợp này chúng ta có thể sử dụng BigInteger(String value, int radix) constructor:

String inputString = "290f98";
BigInteger result = new BigInteger(inputString, 16);
assertEquals("2690968", result.toString());

Trong trường hợp này, chúng ta đang chỉ định radix là 16 để chuyển đổi hệ thập lục phân thành số thập phân.

Ngoài ra còn một cách khác đó là chuyển chuổi sang byte[] và sử dụng BigIntenger(byte [] bytes) constructor.

byte[] inputStringBytes = inputString.getBytes();
BigInteger result = new BigInteger(inputStringBytes);
assertEquals("290f98", new String(result.toByteArray()));

Tóm lược

Như vậy qua bài viết ngắn này chúng ta đã biết cách convert String sang BigInteger trong Java.

Nguồn tham khảo

https://www.baeldung.com/java-string-to-biginteger

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x