2009-05-12 5 views
9

문자열 형식을 지정하는 가장 좋은 방법이 Scala에서 무엇인지 궁금합니다. 클래스의 toString 메서드를 다시 구현하고 있는데 오히려 길고 복잡한 문자열입니다. String.format을 사용하려고 생각했지만 Scala에 문제가있는 것 같습니다. 이 일을하기위한 네이티브 스칼라 함수가 있습니까?스칼라에서 문자열을 포맷하는 가장 좋은 방법은 무엇입니까?

답변

16

나는 그것을 잘못 사용하고있었습니다. 올바른 사용법은 .format (parem1, parem2)입니다.

+5

'RichString'에있는 것들이 있습니다. 당신이 여기서 더 멋진 것들을 할 수있게 해줍니다. 그냥 자바 API를 사용하는 반면에 당신이 할 : "% s 님이 % d의 토끼를 가지고".format (이름 : 및 String.format 당신은 다음과 같은 작업을 수행 할 수 (이름, bunnyCount "% s 님이 % d의 토끼가 있습니다") , bunnyCount) 심지어 연산자로 사용하십시오. "% s는 % d 토끼가 있습니다"형식 (이름, bunnyCount) – Calum

+1

그래서 사용하고 있습니다. – Rayne

2

String#format으로주의해야 할 점은 실제로 리플렉션 (v2.7.4 기준)을 사용하여 구현된다는 사실입니다. Java API에 위임하지만 반성은 비교적 사소한 메소드 호출에 상당한 오버 헤드를 추가합니다. 성능상의 이유로 Java 스타일의 문자열 연결을 고려할 수 있습니다. 스칼라 버전 2.8.0에서이 문제를 해결해야합니다.

+5

한 번 우스꽝스럽게 복잡해진 형식은 이제 만 : def format (args : Any *) : String = java.lang.String.format (self, args.toArray [모두] .asInstanceOf [Array [AnyRef]] : _ *) – extempore

+0

2.9.1 소스를 보면이 문제가 해결되었습니다. 'StringLike.format (args : * Any)'는 단순히 java.lang.String.format'을 래핑합니다. – mtsz

3

안녕하세요 어때요? java.text.MessageFormat?

관련 문제