如何檢查Java中BigInteger的每個數字(例如,每個數字爲System.out.println()
)?除了將其轉換爲字符串之外,還有其他方法嗎?如何檢查Java中BigInteger的每個數字?
回答
直接的代碼打印從最後一位向第一:
private static void printDigits(BigInteger num) {
BigInteger[] resultAndRemainder;
do {
resultAndRemainder = num.divideAndRemainder(BigInteger.TEN);
System.out.println(Math.abs(resultAndRemainder[1].intValue()));
num = resultAndRemainder[0];
} while (num.compareTo(BigInteger.ZERO) != 0);
}
BigInteger
API docs似乎沒有提供任何功能。而且,這些數字很可能不是以10爲基數表示的(因爲它效率很低)。因此,檢查BigInteger的十進制數字的唯一方法很可能是查看其字符串表示形式。
可以將bigInteger轉換爲整型數組,然後它也會有幫助 – djscribbles
你當然可以用基本的數學來計算每個數字。特別是方法divideAndRemainder
可能對此有所幫助。但我懷疑,這比轉換成字符串和檢查字符更有效。 BigInteger
數學畢竟比數學更昂貴int
或long
數學。
我認爲你可以做到這一點的唯一方法是將其轉換爲字符串並驗證每個字符。這裏有一個例子:
BigInteger bigInteger = new BigInteger("123");
String bigIntegerValue = bigInteger.toString();
for(int i = 0; i < bigIntegerValue.length(); i++) {
System.out.println(bigIntegerValue.charAt(i));
}
似乎很簡單,你需要做的得到一個數字的每個數字是什麼。 創建一個循環,跟蹤您的數字是否大於十,然後在其上執行mod 10操作,然後除以十。
while (num >10)
{
System.out.println(num%10);
num = num/10;
}
對於'BigInteger',您需要使用方法'mod','divide','compareTo'而不是運算符。但原則上是有效的。 –
Opps我將修復 – RGdev
您還需要適應高位數字。 –
也許你可以嘗試檢查使用BitSet你這樣的BigInteger的每一位,
BitSet bitSet = BitSet.valueOf(bigInteger.toByteArray());
- 1. 檢查奇數中的每個數字
- 2. 如何檢查Java字符串中的每個值?
- 3. 如何檢查字符串中的每個單獨的數字?
- 4. 如何讀取Java中每個數字的每個數字
- 5. 如何檢查字符數組中的每個字符?
- 6. BigInteger如何在Java中將字節數組轉換爲數字?
- 7. 在JAVA中如何檢查兩個ArrayList中的多個數字
- 8. 檢查每個字符的數字
- 9. 檢查int中的單個數字(Java)
- 10. 如何將字節數組轉換爲java中的BigInteger
- 11. 如何在java中處理大於BigInteger的大數字?
- 12. Java BigInteger素數
- 13. 如何檢查java中的5個數字的背離
- 14. 如何檢查每個字符的字符串中
- 15. 如何檢查字符串中的每個字符?
- 16. 如何檢查一個數字是否是java/android中的「NaN」?
- 17. 如何檢查每個字符是否是PHP中的字母數字?
- 18. 的BigInteger modInverse不能與數字工作檢查,是可逆的
- 19. 的BigInteger在Java中
- 20. Java中的BigInteger類?
- 21. Java中BigInteger的log2
- 22. 檢查數獨(java)中的每個隨機數
- 23. Java:檢查字符串中的每個空格
- 24. 檢查文本文件中的每個字符,Java
- 25. Java BigInteger OR函數
- 26. Java:如何使用BigInteger?
- 27. 如何找到列表中的每個字的字符數? (JAVA)
- 28. Java,如何檢查一個字符串是否包含數字?
- 29. 通過pgsql檢查字符串中的每個字符函數
- 30. 如何檢查數組中每個項目的第一個字母?
的BigInteger的數字很可能不會存儲在基數10中,因此除了檢查字符串表示的字符之外,可能沒有別的辦法。 – maerics
只有字符串可以容納BigInteger可以處理的數字。 –