2014-03-06 19 views
7

我試圖創建一個方法來生成一個4位整數並將其存儲在一個字符串中。 4位整數必須位於1000到10000之間,然後該值必須存儲到PINString。 繼承人我到目前爲止。我收到錯誤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是一個有效的數字(雖然看起來很奇怪)。 –

+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

使用字符串存儲的值:

String PINString= String.valueOf(randomPIN); 
7

做一個字符串變量,CONCAT生成的int值在它:

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

,甚至更簡單

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

無法比t更簡單他;)

相關問題