2014-03-06 4 views
7

4 자리 정수를 생성하고 문자열에 저장하는 메서드를 만들려고합니다. 4 자리 정수는 1000에서 10000 사이 여야합니다. 그런 다음이 값을 PINString에 저장해야합니다. 내가 지금까지 가지고있는 것을 Heres. Cannot invoke toString(String) on the primitive type int 오류가 발생합니다. 어떻게 해결할 수 있습니까?임의의 4 자리 숫자 만들기 및 문자열에 저장

public void generatePIN() 
    { 

     //generate a 4 digit integer 1000 <10000 
     int randomPIN = (int)(Math.random()*9000)+1000; 

     //Store integer in a string 
     randomPIN.toString(PINString); 

    } 
+0

아니, @nKn. –

+0

왜 당신은 1000보다 높은 것을 원하십니까? 0050는 0050이 유효한 숫자라고 생각합니다 (이상하게 보입니다). –

+0

분명히 정확한 복제본이 아니지만 동일한 솔루션에서 동일한 문제가 발생합니다. –

답변

10

당신은 PINString = String.valueOf(randomPIN);

1

randomPIN가 기본 데이터 형이며, 사용하고 싶습니다. 당신이 String의 정수 값을 저장하려면

, String.valueOf를 사용

String pin = String.valueOf(randomPIN); 
0

이 방법을 사용해보십시오. x는 첫 번째 숫자입니다. 1에서 9까지입니다.
그런 다음 최대 3 자리 숫자가있는 다른 번호에 추가합니다.

public String generatePIN() 
{ 
    int x = (int)(Math.random() * 9); 
    x = x + 1; 
    String randomPIN = (x + "") + (((int)(Math.random()*1000)) + ""); 
    return randomPIN; 
} 
+0

'(int) (Math.random() * 9000) +1000;의 문제점은 무엇입니까? –

+0

아무 것도 없습니다. 나는 그 질문이 무엇에 관한 것인지 오해했다. 숫자 생성 공식 그 자체라고 생각했습니다. –

0

값을 저장하기 위해 문자열을 사용하여 그 안에 생성 된 int 값 CONCAT,

String PINString= String.valueOf(randomPIN); 
7

가 String 변수를 확인을 :

int randomPIN = (int)(Math.random()*9000)+1000; 
String val = ""+randomPIN; 

또는 더 간단

String val = ""+((int)(Math.random()*9000)+1000); 

t보다 단순하지 않습니다. 그의);

관련 문제