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