2014-02-25 44 views
1

我有點困惑。以前我發佈了一個問題:Conventional Programming: How do you return two Types of primitive ('int and 'string') from "get" method?如何使用String.format打印出兩個對象()

它得到的答案是使用String.format() with format specifiers (%s, %d, %f...)

雖然答案是有點混亂,我明白,%F意味着轉換(?)

但你如何打印出agename使用這種方法。我的嘗試:從上述方法被執行

// DISPLAY Person name and age 

public String displayProfile() { 
    return String.format(%fgetAge(), %fgetName()) 

     } 

主要方法:

if (optionSelected == 2) { 
      System.out.println(zac.displayProfile()); 
     } 

我遍這個地方,任何幫助,將不勝感激。

更新: 根據要求,我發佈了使用String.format()方法的get和set方法。因爲雖然在糾正String.format方法後我沒有收到任何錯誤,但是在從String.format()返回getAge()和GetName()後,它不會打印出'name'和'age'。我在做什麼錯誤是什麼錯誤?

// SET NAME 
public void setName(String name) { 
    this.name = name; 
    } 

// GET NAME 
public String getName() { 
    return this.name; 
} 


// SET AGE 

public void setAge(int age) { 
    this.age = age; 
    } 

// GET AGE 

public int getAge() { 
    return this.age; 
} 
+0

嘿,夥計們!所以我做了改動,沒有發現任何錯誤。但是,執行main方法時,我不打印出「名稱」或甚至「年齡」:if(optionSelected == 2){System.out.println(zac。displayProfile()); } – user3289740

回答

2

的格式說明和功能將需要單獨所以說明符的字符串和功能需要後弦被稱爲:

public String displayProfile() { 
    return String.format("%d, %s", getAge(), getName()); 
    } 
+0

注意:一定要確認'getAge()'和'getName()'函數返回正確的類型。 – John

+0

我做了改動,沒有得到任何錯誤。但是,當main方法執行時,我不打印出「name」,甚至「age」:if(optionSelected == 2){System.out.println(zac.displayProfile()); }。有什麼建議麼? – user3289740

+0

它不打印出來的值或只是單詞的名稱和年齡?如果後者只是將''%d,%s'''改爲''年齡:%f,姓名:%s「' – John

0

你需要做的是:

public String displayProfile() { 
    return String.format("%d %s", getAge(), getName()) 

} 

format方法有幾個參數,第一個參數總是要格式化的字符串。其他所有變量都會替換第一個字符串中的佔位符。所以你在這裏基本上做的是告訴java打印一個字符串("%d %s"),它有兩個佔位符(一個用於整數,一個用於字符串)由一個空格字符分隔。然後,以相同的順序從左到右提供佔位符的值。

此外,我強烈建議您開始瀏覽http://docs.oracle.com/javase/tutorial/或其他一些教程。

0

您可以使用String.Format()爲:

public String displayProfile() { 
    return String.format("Age: %f, Name: %s", getAge(), getName()); 
} 

%f代表一浮點類型和%s字符串類型。我不認爲你需要浮點代表Age。我寧願使用int並使用%d來格式化。

您可以進一步閱讀格式here