2013-06-24 4 views
1

String.format()과 비슷한 함수를 작성할 수 있습니까? 첫 번째 인수는 자리 표시자를 포함하는 문자열이고 다른 인수는 다른 유형이 될 수 있습니까? 어떻게이 기능을 format 자바에서 구성되어 있습니까?String.format과 유사한 함수 작성

+1

'String.format()'은 ['Formatter'] http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html)을 내부적으로 참조하십시오. – fge

+0

"포맷터가 자리 표시자를 처리하는 방법"또는 "여러 객체를 전달할 수있는 방법"을 묻는 중입니까? 아니면 완전히 다른 무엇인가? – parsifal

답변

3

예, 단지 즉 우리가 varargs의 사용을

public static String myMethod(String str, Object... args) { 
    ... 
} 

그런 짓을. source of the String class에서


: 그것은 가능 확실히

2780 public static String format(String format, Object ... args) { 
2781  return new Formatter().format(format, args).toString(); 
2782 } 
1
public static void someFunction(String string, Object... objects) { ... } 
0

: String.format 자체는 어떠한 방식으로도 마법의 방법이다, 그래서 당신은 소스 코드를 살펴 좋을 것. 기본 언어 기능은 varargs입니다. 위의 코드에서

0
public static String format(String str, Object... args) 
0
public static String format(String arg1, Object... args) 

주의를 점 . 이는 가변 인수로 메소드의 마지막 인수를 표시합니다. varargs를 사용하여 다양한 양의 매개 변수를 전달할 수 있습니다. vararg는 메소드의 마지막 인수 여야합니다. 인수의 배열의 결과 Object... args에서 별도로

1

이, 당신은 quando 기능이 배열로 변환입니다 수신 기능을하는 많은 매개 변수를 전달할 수 있습니다 var에 인수입니다. Obs : var args가 마지막 매개 변수입니다. String.format()을 구현하기 위해 sdk의 소스 파일을 다음과 같이 볼 수 있습니다 : java/sdk .../src.zip