2012-07-14 46 views
1

[解決]轉換永遠改變隨機產生整數轉換成字符串

我搜索很多論壇以及堆棧溢出的問題,對不斷變化的隨機數轉換爲字符串,但我無法找到一個解決我的具體問題。

如何將customerID轉換爲字符串?

public class UniqueCustomerNumber { 

    private int customerID; 

    public void setCustNum(int cNumber) { 
     Random x = new Random(); 
     cNumber = x.nextInt(800000001) + 100000000; 
     customerID = cNumber; 
    } 

    public int getCustNum() { 
     return customerID; 
    } 
} 
+1

你所說的「爲不修改字符串」是什麼意思?目前你的問題還不清楚。 – 2012-07-14 18:14:31

+1

你能澄清你的問題嗎? – Mob 2012-07-14 18:14:47

+0

抱歉有關混淆。我編輯了這個問題。我需要將customerID轉換爲字符串。 – Ugo 2012-07-14 18:16:57

回答

4

使用Integer.toString(int i)它在Integer類,它有一個int爲agument並返回其文本表示爲String的靜態方法。

public class UniqueCustomerNumber { 

    private String customerID; 

    public void setCustNum() { 
     Random x = new Random(); 
     this.customerID = Integer.toString(x.nextInt(800000001) + 100000000); 
    } 

    public String getCustNum() { 
     return this.customerID; 
    } 
} 

代碼:

公共類UniqueCustomerNumberTest {

public static void main(String[] args) { 
    UniqueCustomerNumber uin = new UniqueCustomerNumber(); 
    uin.setCustNum(); 
    System.out.println("Unique Customer Number = " + uin.getCustNum()); 
} 

輸出:

Unique Customer Number = 748816502 

一個側面說明:使用此方法可能不符合你的班級名稱,UniqueCustomerNumber。我知道這個概率確實很小,但理論上可能會發生這樣的情況,即如果您以這種方式生成這兩個客戶,就會有兩個客戶擁有相同的ID。例如,一個更簡單的方法是從一些數字開始爲其分配ID,例如1。

在每個作業上,你會增加1個計數器。缺點是你需要將計數器保存在某個地方(DB,txt文件,w/e)。

+0

好吧我試過你的解決方案,它返回null。 – Ugo 2012-07-14 18:23:42

+0

你能發佈你的完整代碼嗎?你說它返回null。你有沒有嘗試過在第一個地方打給二傳手? – Lopina 2012-07-14 18:27:30

+0

我會將您鏈接到完整的代碼。給我一點時間。 – Ugo 2012-07-14 18:32:16

0

兩種方式來做到這一點...

1.連接它把一個字符串(可以是一個空字符串)。

如:

int i = 5; 
String s = i + "" ; // i is now converted to String. 

2.使用toString()方法,但這只能與對象類型。所以,首先你需要將原始int類型轉換爲包裝對象整數

如:

int i = 5; 
    Integer o = new Integer(i); 
    o.toString() ; 
+0

['parseInt'](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html#parseInt(java .lang.String))從給定的「String」中解析一個「int」。 'int x = Integer.parseInt(「123」);' – 2012-07-14 18:40:23

+0

@謝謝大衛,錯誤而不是寫toString我寫了解析,謝謝指出它..我現在編輯它。再次感謝 – 2012-07-14 18:43:11

+1

這將起作用,但Lopina的回答是可取的。不需要創建一個'StringBuilder'(字符串連接)或'Integer'實例來將一個數字格式化爲一個字符串。 – 2012-07-14 18:51:08