Ok, więc wszyscy powinniśmy wiedzieć, że możesz dołączyć zmienne do łańcuchów, wykonując:
String string = "A string " + aVariable;
Czy jest na to sposób:
String string = "A string {aVariable}";
Innymi słowy: bez zamykania cudzysłowów i dodawania znaków plus. To bardzo nieatrakcyjne.
String.format()
są one wbudowane w język.Odpowiedzi:
Zawsze możesz użyć String.format (....). to znaczy,
Nie jestem pewien, czy to jest dla Ciebie wystarczająco atrakcyjne, ale może być całkiem przydatne. Składnia jest taka sama jak dla printf i java.util.Formatter. Używałem go bardzo często, zwłaszcza jeśli chcę wyświetlić tabelaryczne dane liczbowe.
źródło
format
jest bardziej atrakcyjne niż proste wyrażenie konkatenacji typu String. Najważniejszeformat
jest to, gdy musisz wykonać dopełnienie, formatowanie liczb itp.1 + "oops"
), zwłaszcza jeśli używasz FindBugs (który analizuje ciągi formatujące i parametry wejściowe). I, jak mówi pytający, w wielu przypadkach jest bardziej czytelny. Oczywiście szkoda, żeformat
metoda została statyczna, to był raczej głupi błąd projektowy.format
odnosiłby się do łańcucha docelowego? Na pewno nie sugerujesz, że powinniśmy pisać"A String %s %2d".format(aStringVar, anIntVar)
... prawda?Nazywa się to interpolacją ciągów; nie istnieje jako taka w Javie.
Jednym ze sposobów jest użycie String.format:
Innym podejściem jest użycie biblioteki szablonów, takiej jak Velocity lub FreeMarker .
źródło
Weź również pod uwagę
java.text.MessageFormat
, która używa pokrewnej składni z numerycznymi indeksami argumentów. Na przykład,powoduje, że
string
zawiera:Częściej klasa jest używana do formatowania liczbowego i czasowego. Przykład
JFreeChart
formatowania etykiet opisano tutaj ; klasaRCInfo
formatuje okienko stanu gry.źródło
możesz użyć formatu String, aby dołączyć zmienne do łańcuchów
używam tego kodu, aby zawrzeć 2 zmienne w ciągu:
źródło