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의 10 진수를 검사하는 유일한 방법은 문자열 표현을 보는 것입니다.
bigInteger를 정수 배열로 변환 할 수 있습니다. 또한 도움이 될 것입니다. – djscribbles
물론 각 숫자를 계산하는 데 기본 수학을 사용할 수 있습니다. 특히 divideAndRemainder
방법이 도움이 될 수 있습니다. 그러나 이것이 String으로 변환하고 문자를 검사하는 것보다 더 효율적이라는 것은 의심 스럽습니다. 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));
}
숫자의 각 자릿수를 얻는 것이 매우 간단 해 보입니다. 숫자가 10보다 큰지 추적하고 그 위에 모드 10 연산을 수행 한 다음 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. Java에서 Generics를 어떻게 캐스팅 할 수 있습니까?
- 2. 이 반복은 java에서 어떻게 할 수 있습니까?
- 3. 어떻게 lib 파일을 검사 할 수 있습니까?
- 4. Java에서 파일 시작 부분의 포인터를 어떻게 재설정 할 수 있습니까?
- 5. Java에서 주석을 언제 어떻게 초기화합니까? 이것을 제어 할 수 있습니까?
- 6. java.lang.NumberFormatException을 검사 할 수 있습니까?
- 7. BigInteger의 Java 스토어 문자열
- 8. 자바에서 BigInteger의 % 연산자
- 9. Java에서 각 루프의 결과를 어떻게 추가합니까?
- 10. Java에서 동등한 cURL/mimetype 코드를 어떻게 처리 할 수 있습니까?
- 11. 어떻게 Java에서 작업을 잔인하고 무자비하게 중단 할 수 있습니까?
- 12. Java에서 '미디어 키'이벤트를 어떻게 수행 할 수 있습니까?
- 13. Java에서 컴파일러를 작성하는 코드를 어떻게 파싱 할 수 있습니까?
- 14. 어떻게 JAVA에서 * .raw 파일을 * .bmp로 변환 할 수 있습니까?
- 15. Java에서 사진 시퀀스를 어떻게 애니메이트 할 수 있습니까?
- 16. 어떻게 JAVA에서 진행 표시 줄을 일시 중지 할 수 있습니까?
- 17. 어떻게 속성 클래스가 Java에서 '부모'클래스의 메서드를 호출 할 수 있습니까?
- 18. Java에서 유닉스 기계와 꼬리까지 어떻게 ssh 할 수 있습니까?
- 19. Java에서 Exception을 발생시킨 인수 값을 어떻게 인쇄 할 수 있습니까?
- 20. 어떻게 Java에서 URL을 이스케이프 처리 할 수 있습니까?
- 21. 두 프로그램이 Java에서 서로 어떻게 대화 할 수 있습니까?
- 22. 어떻게 Java에서 XML 태그 이름을 검색 할 수 있습니까?
- 23. Java에서 이동 가능한 객체에 속도를 어떻게 추가 할 수 있습니까?
- 24. mako에서 어떻게 목록을 순환하여 각 값을 표시 할 수 있습니까?
- 25. List의 각 문자열을 어떻게 포맷 할 수 있습니까?
- 26. 각 알림에 대해 새로운 활동 객체는 어떻게 할 수 있습니까?
- 27. 어떻게 각 스레드 수를 계산하고 결과를 에코 할 수 있습니까?
- 28. XML 파일의 각 하위 노드를 반복하지만 어떻게 할 수 있습니까?
- 29. Android ListView의 각 행을 어떻게 사용자 정의 할 수 있습니까?
- 30. Node.js 몽구스에서 각 필드를 업데이트하고 싶습니다 ... 어떻게 할 수 있습니까?
BigInteger의 숫자는 10 진수에 저장되지 않으므로 문자열 표현의 문자를 검사하는 것 외에 다른 방법은 없습니다. – maerics
문자열 만 BigInteger가 처리 할 수있는 숫자를 저장할 수 있습니다. –