8

Jestem w kontakcie z naprawdę starym systemem, a plik, który potrzebuję do wygenerowania, potrzebuje pola, które jest utworzone z ciągu, ale musi mieć dokładnie 15 szerokości.Jak sformatować ciąg z interpolacją ciągów znaków w Scali jako ciąg o stałej szerokości?

chcę coś takiego:

val companyName = "FooBar, Inc" // 11 chars 
f"$companyName%s" 

do powrotu:

" FooBar, Inc" 

jest jakiś zręczny sposób, aby zrobić to, co usiłuję zrobić z interpolacją ciąg?

+0

To pytanie wydaje się bardzo proste, to dlatego, że robiłem coś innego źle, gdy miałem rozwiązanie przez cały czas, więc zastanawiałem się nad tym, aby miało to sens. – myyk

Odpowiedz

12

Użyj String.format z format string. Na pewno coś tam zrobi, co chcesz :-)

Ten kod będzie robić to, co chcesz:

scala> val companyName = "FooBar, Inc" 
companyName: String = FooBar, Inc 

scala> f"$companyName%15s" 
res0: String = " FooBar, Inc" 
+0

Och, wow. Zamierzam edytować moje pytanie, ponieważ nie jest ono poprawne. Nie wiem, co wpisałem w REPL, ponieważ to działa wyraźnie. Dzięki. – myyk

+0

Czy to podejście pozwala uzyskać wyrównane do lewej strony formatowanie (odstępy po prawej stronie)? –

+2

Tak, wstępnie pend "-" do specyfikatora szerokości: 'scala> f" $ companyName% -15s "' –

Powiązane problemy