2010-11-14 21 views
0

這是Java中的標籤暗示。我無法弄清楚如何讓它在代碼的最後打印出「關鍵」字符串,同時保持我的變量的方式。我只是真的與靜態主要工作,我不知道什麼對於程序,因爲我是一個總新手。有人能指引我朝着正確的方向嗎?我想知道你們都在想什麼!我需要解決什麼才能打印出隨機字符串?

import java.util.Random; 

class Key { 

    private String key = new String(); 
    private void main(String[] args) { 
     Random r = new Random(); 

     for (int i = 10; i > 0; i--) { 
      int randomNumber = r.nextInt(10) + 48; 
      int randomLetter = r.nextInt(26) + 97; 
      int branchSwitch = r.nextInt(2); 

      if (branchSwitch == 1) { 
       // System.out.print((char)randomNumber); 
       key = key + (char) randomNumber; 
      } else 
       key = key + (char) randomLetter; 
      // System.out.print((char)randomLetter); 
     } 
     System.out.print(key); 
    } 
} 
+0

如果你使用會發生什麼'println'而不是「打印」? (也許有些東西在緩衝輸出?) – cdhowie 2010-11-14 07:53:08

回答

4

首先,主要應該是public static,如果你想運行此作爲應用程序。 所以,你可以修改你的程序如下(注意,您的原始main被重命名爲generateAndPrint,因爲你不能有兩種方法具有相同簽名的一類):

class Key { 
    private String key = new String(); 
    private void generateAndPrint() { 
     Random r = new Random(); 

     for (int i = 10; i > 0; i--) { 
      int randomNumber = r.nextInt(10) + 48; 
      int randomLetter = r.nextInt(26) + 97; 
      int branchSwitch = r.nextInt(2); 

      if (branchSwitch == 1) { 
       // System.out.print((char)randomNumber); 
       key = key + (char) randomNumber; 
      } else 
       key = key + (char) randomLetter; 
      // System.out.print((char)randomLetter); 
     } 
     System.out.print(key); 
    } 

    public static void main(String[] args) { 
     Key key = new Key(); 
     key.generateAndPrint(); 
    } 
} 
1

我不明白爲什麼你main是私有的(和非靜態)。

但是,這裏是一個test-run of your program at ideone.com。它似乎工作正常。

改變我做:

  • 提出的主要法公共靜態
  • 所做的靜態變量。
+0

你應該提到你在應用程序工作之前修改了應用程序。 – 2010-11-14 08:02:14

+0

沒錯。我將其更改爲public static main。 – aioobe 2010-11-14 08:03:47

+0

主要是私人的原因是因爲我不知道我在做什麼。你能指出我解釋主流和靜態的東西嗎? – Breedly 2010-11-14 16:39:28

相關問題