2016-12-15 104 views
0

我想用一個測試文件中讀取幾個對象,但我從第二步空步驟4的Java測試文件返回NULL

對於名字,如果我輸入史蒂芬,我想獲得ste123背部(123應該是一個隨機數)

下面是代碼:

public class Lab14Tester 
{ 

    public static void main(String[] args) 
    { 
     Introduction step1 = new Introduction(); 
     System.out.println(step1.giveline1()); 
     System.out.println(step1.giveline2()); 
     System.out.println(step1.giveline3()); 
     System.out.println(step1.giveline2()); 
     System.out.println(step1.giveline1()); 

     Scanner in= new Scanner(System.in); 
     System.out.print("\nName: "); 
     String inputname = in.nextLine(); 
     Username step2 = new Username(); 
     String givename = step2.givename(); 
     System.out.println("Your username is " + givename); 

     System.out.print("\nGive me a number: "); 
     int inputnumber =in.nextInt(); 
     OddEven step3 = new OddEven(); 
     System.out.println(step3.givenumbertype()); 

     System.out.print("\nGive me a number grade: "); 
     double grade = in.nextDouble(); 
     NumberToLetter step4 = new NumberToLetter(); 
     System.out.printf("\n%.1f", grade); 
     System.out.print(" is equal to a " + step4.giveletter()); 
    } 
} 


public class Username 
{ 

    private String subname; 
    private int randomnumber; 
    private String outputname; 

    public void getname(String inputname) 
    { 
     subname = inputname.substring(0,3); 
     randomnumber = (int)(Math.random()*1000); 
     outputname = subname + randomnumber; 
    } 

    public String givename() 
    { 
     return outputname; 
    } 
} 
+0

你'Username'類缺乏一個構造函數來設置它的成員變量的值。 –

+2

請勿在註釋中輸入代碼。您的原始帖子。 –

+0

謝謝,我應該創建什麼樣的構造函數? – maymay

回答

-2

你可能會遇到麻煩,因爲你用串聯整數的字符串。

試試這個:

public void getname(String inputname) 
{ 
    subname = inputname.substring(0,3); 
    randomnumber = (int)(Math.random()*1000); 

    String randomnumberAsString = String.valueOf(randomnumber); 

    outputname = subname + randomnumberAsString; 
} 
+0

在Java中,'str + int'自動將'int'轉換爲'String'。參見'public class Zomg {public static void main(String [] args){System.out.println(「abc」+(int)(Math.random()* 1000)); }}。 –

+0

是的,我認爲是。那麼在課堂代碼中需要更改什麼?由於測試儀文件中使用的另外兩個對象也返回空值。 – maymay