Znaki specjalne w łańcuchach znaków
Znaki specjalne
W metodach takich jak print() łańcuchy znaków ujmujemy w cydzysłowy. Oprócz zwykłych znaków wewnątrz takich łańcuchów możemy użyć tzw. znaków specjalnych odpowiedzialnych za wyświetlanie niektórych symboli lub tzw. białych znaków. Znaki specjalne są poprzedzone ukośnikiem odwrotnym (backslash).
Lista znaków specjalnych:
- \t - tab
- \n - nowa linia
- \r - powrót karetki
- \" - cudzysłów
- \' - apostrof
- \\ - backslash
- \uXXXX, gdzie XXXX to wyrażony w formacie szesnastkowym kod symbolu z tablicy ASCII (patrz np. tutaj: https://pl.wikipedia.org/wiki/ASCII). Przykładowo znak "C" jest reprezentowany przez zapis \u0043 - patrz przykład niżej.
Przykład użycia niektórych znaków specjalnych.
W programie Hello.java do wnętrza metody main dodaj następujący kod:
...
String cytat = "Treść cytatu";
System.out.println( "\tHello! - \u0043 - \\ Tutaj jest cytat: \"" + cytat + "\".\n\n" );
...
Skompiluj kod (javac Hello.java) oraz uruchom program (java Hello).
Tym razem zobaczysz następujący wynik:
C:\Users\studentwsb\java> java Hello
Hello!
Hello! - C - \ Tutaj jest cytat: "Treść cytatu".
C:\Users\studentwsb\java>
Formatowanie w łańcuchach znaków - metoda PrintStream.printf():
Ponadto w metodach używających sformatowanych łańcuchów znaków - np. System.out.printf - możemy wewnątrz łańcucha określać miejsca wystąpienia kolejnych "argumentów", które podajemy w formie listy dodatkowych parametrów wywołania metody - np. w taki sposób:
public class PrintfTest {
public static void main( String[] args ) {
float arg1 = 1111111;
int arg2 = 22;
int arg3 = 33;
System.out.printf( "Parametr1: %1$+,07.3f - Parametretr2: %2$+05d - Param3: %2$d", arg1, arg2, arg3 );
// WYJAŚNIENIE:
//
// %1$+,07.3f --- użyj pierwszego parametru, ze znakiem, ze standardowymi znakami rozdzielającymi
// wartości co trzy rzędy wielkości (w PL używamy zapisu 1 234 567.123), z zerami wiodącymi, wyświetl
// parametr przy użyciu 7 znaków (włączając w to znak, cyfry całkowite, kropke oraz cyfry dziesiętne),
// z trzema cyframi po przecinku, jako liczby typu float.
//
// %2$d --- użyj drugiego parametru jako liczby całkowitej
//
}
}
gdzie dla każdego elementu %... obowiązują następujące zasady składni:
%[argument_index$][flags][width][.precision]conversion
Zasady składni w metodzie printf są szczegółowo opisane w dokumentacji klasy PrintStream - metody printf() - tutaj: https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#syntax