2012-03-10 3 views
56

좋아, 그래서 우리 모두 수행하여 당신이 문자열에 변수를 포함 할 수 있음을 알아야한다 :Java - 문자열에 변수 포함?

String string = "A string " + aVariable; 

이 좋아 할 수있는 방법이 있나요 : 즉

String string = "A string {aVariable}"; 

:가 필요없이 따옴표를 닫고 더하기 기호를 추가하십시오. 그것은 매우 매력적이지 않습니다.

+0

왜 이러한 유형의 문자열 조작이 필요합니까? –

+4

@Chandra 이유를 묻지 말고 가능하면 설명하십시오. 그것은 내가 그것을하는 것을 선호하는 단지 방법이다. 감사. –

+2

Groovy를 사용하면 원하는 모든 문자열 "$ {aVariable}"을 수행 할 수 있습니다. –

답변

68

언제든지 String.format (....)을 사용할 수 있습니다. 즉

String string = String.format("A String %s %2d", aStringVar, anIntVar); 

나는 당신에게 충분히 매력적인지 모르겠지만 매우 유용 할 수 있습니다. 구문은 printf 및 java.util.Formatter와 동일합니다. 특히 표 형식의 숫자 데이터를 표시하고자 할 때 많이 사용했습니다.

+0

흥미 롭습니다. 이것은 단지 그것에 관한 것 같습니다. –

+0

10 분이 지나면 답변으로 표시하겠습니다. –

+1

나는 이것이 의견의 문제라는 것을 알고있다. 그러나 'format'이 단순한 문자열 연결 표현보다 더 매력적인지는 모르겠다.'format'이 독자적으로 나오는 곳은 패딩, 숫자 형식 지정 등을 할 때입니다. –

38

문자열 보간이라고합니다. 그것은 자바처럼 존재하지 않습니다.

한 가지 방법은 및 String.format를 사용하는 것입니다 :

String string = String.format("A string %s", aVariable); 

또 다른 방법은 Velocity 같은 템플릿 라이브러리를 사용하는 것입니다.

+1

위대한 마음은 비슷하게 생각합니다! 1 + –

14

또한 숫자 인수 인덱스가있는 관련 구문을 사용하는 java.text.MessageFormat을 고려하십시오. 예를 들어, 다음을 포함 string

String aVariable = "of ponies"; 
String string = MessageFormat.format("A string {0}.", aVariable); 

결과 :

더 일반적
A string of ponies. 

클래스는 그 숫자와 시간 포맷에 사용된다. JFreeChart 라벨 포맷의 예가 here; RCInfo 클래스는 게임의 상태 창을 포맷합니다.

+1

CSharp에서 오는 누군가는 C#의 string.Format과 유사하므로이 방법이 더 간단합니다. – Mojtaba