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 메소드가 실행될 때 "name"또는 "age"를 출력하지 않는다 : 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()) 

} 

형식 메서드에는 여러 가지 인수가 사용됩니다. 첫 번째 형식은 항상 형식화 할 문자열입니다. 다른 모든 변수는 첫 번째 문자열의 자리 표시자를 대체하는 변수입니다. 그래서 여기서 기본적으로하는 것은 하나의 공백 문자로 구분 된 두 개의 자리 표시 자 (정수, 문자열) 중 하나 인 문자열 ("%d %s")을 인쇄하도록 java에 지시하는 것입니다. 그런 다음 자리 표시 자의 값을 왼쪽에서 오른쪽으로 같은 순서로 제공합니다.

또한 http://docs.oracle.com/javase/tutorial/이나 다른 튜토리얼을 통해 찾아보기를 시작하는 것이 좋습니다.

0

당신은으로 String.Format()를 사용할 수 있습니다

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

경우 %f부동 소수점 타입의 스탠드 및 문자열 유형에 대한 %s. Age을 나타내는 부동 소수점이 필요하지 않다고 생각합니다. 차라리 을 사용하고 %d을 사용하여 형식을 지정하십시오.

서식을 더 자세히 읽을 수 있습니다. here

관련 문제