2014-01-06 4 views
1

자바에서는 큰 숫자의 각 숫자가이 배열의 다른 문자가되는 배열의 생성자를 만들어야합니다.배열의 큰 숫자 - 생성자

이 메인 클래스입니다 :

public static void main(String[] args) { 
    BigNumber bn1 = new BigNumber(1500); 
    BigNumber bn2 = new BigNumber("987349837937497938943242"); 

    System.out.println("line 1: " + bn1); 
    System.out.println("line 2: " + bn2); 
} 

내가 문자열을 사용하여 생성자를 만들려고하지만 난 그게 좋은 경우에 확실하지 않다 :

private String number; 
private char[] n = null; 

public BigNumber(String _number){ 
    number = _number; 
    n = new char[number.length()]; 

    for (int i = 0; i < n.length; i++){ 
     n[i] = number.charAt(i); 
    } 
} 

아니면 다른 방식이있다 이 작업을 수행?

+0

나는 for 루프가 괜찮다고 생각한다. 도트를 사용하는 것을 두려워하지 마십시오. –

답변

1

"큰 숫자의 각 숫자가이 배열의 다른 문자가 될 배열의 생성자를 만들어야합니다."

당신은 할 수

당신이 String로 BigNumber 개체를 인쇄하려면

private char[] n = null; 

public BigNumber(String _number){ 
    n = _number.toCharArray(); 
} 

, 당신이 필요로하는 문자열의 문자 배열을 반환

n = _number.toCharArray(); 

@BigNumber 클래스의 toString() 메소드를 오버라이드하려면

public class BigNumber { 
    .... 

    @Override 
    public String toString(){ 
     return Arrays.toString(n); 
    } 
} 

현재 인쇄하고있는 방법에 따라 원하는대로 배열이 인쇄되지 않습니다. 객체를 String 표현으로 원하는 출력 형식으로 출력하려면 toString() 메서드를 재정의해야합니다. 내 간단한 예제는 배열을 문자열로 출력하지만 원하는대로 포맷 할 수있다. 하지만 당신은 또한 주

BigNumber bn2 = new BigNumber("987349837937497938943242"); 
System.out.println("line 1: " + bn2); 

을 할 수있는 방법 그런 다음 String

을 반환해야 명심 : 당신은 하지

BigNumber bn1 = new BigNumber(1500); 

BigNumber 생성자는 String 인수 만 취합니다. 여기서 1500int입니다. 당신은을 할 수

BigNumber bn1 = new BigNumber(String.valueOf(1500)); 

UPDATE

생성자에 인수로 int을 허용하고 싶다면, 당신이 소요 별도의 생성자를 만들어야합니다 int 인수어떤 경우에는 intString으로 만들고 문자 배열을 가져와야합니다. 그래서 당신은 int

public BigNumber(int number){ 
    String numString = String.valueOf(number); 
    n = number.toCharArray(); 
} 
+0

왜 생성자에 과부하가 걸리지 않습니까? –

+0

@ArnaldoIgnacioGasparVejar 그가 할 수없는 이유는 없지만 그것은 문자 배열을 만드는 모든 목적을 이깁니다. 나는 여전히 편집을 게시 할 것이다. –

0

String 소요하는 String 하나는 당신이 원하는 걸 줄 것 toCharArray() 방법이 걸리는 두 개의 생성자를 가질 것이다.

n = _number.toCharArray(); 

참고 : toCharArray은 원본 문자열의 복사본을 반환합니다. 따라서 배열에 대한 변경 사항은 소스 문자열에 반영되지 않습니다.