2013-09-25 17 views
7

Stworzyłem dwuwymiarową tablicę w Javie i szukałem sposobu na wydrukowanie jej na konsoli, aby móc potwierdzić, że rzeczy, które robiłem były poprawne. Znalazłem kod online, który wykonał to zadanie dla mnie, ale miałem pytanie, co konkretny kawałek kodu znaczy.Java - Co oznacza " n"?

int n = 10; 
int[][] Grid = new int[n][n]; 

//some code dealing with populating Grid 

void PrintGrid() { 
    for (int i = 0; i < n; i++) { 
     for (int j = 0; j < n; j++) { 
      System.out.print(Grid[i][j] + " "); 
     } 
     System.out.print("\n"); 
    } 
} 

Co robi "\ n"? Próbowałem wyszukiwać w Google, ale ponieważ jest to tak mały fragment kodu, nie mogłem znaleźć wiele.

+13

Czy naprawdę szukał [używając tytułu] (https://www.google.co.in/search?q=What+is+%5Cn+in+Java&rlz=2C1CHWA_enIN0536IN0536&oq=What+is+%5Cn+in + Java & aqs = chrome..69i57j0l5.3002j0 & sourceid = chrome & espvd = 210 & es_sm = 122 & ie = UTF-8)? –

+0

Chociaż powinienem powiedzieć, że nie ma to większego znaczenia na StackOverflow z tego rodzaju pytaniem, ale wtedy otrzymaliśmy wszystkie proste pytania w jednym miejscu. – lent

+0

Czy próbowałeś usunąć linię (umieścić w komentarzu) i zobaczyć, jaka była różnica w danych wyjściowych? –

Odpowiedz

5
\n 

Oznacza to, że drukowana jest nowa linia.

Na marginesie nie trzeba pisać dodatkowej linii. Jest tam wbudowana funkcja wbudowana.

println() //prints the content in new line 

Learn more from docs

+0

Nie sądzę. Z jakiegoś powodu znalazłem 'void println (" ... ")' znacznie wolniej niż 'void print (" ... "+" \ n ")'. Oznacza to, że może naprawdę spowolnić projekt, jeśli wydrukujesz dużo. – 000000000000000000000

+0

czy możesz rozwinąć? –

+0

Przepraszam - nie skończyłem z komisem i opublikowaliśmy go w razie wypadku. – 000000000000000000000

34

ITS jest nowa linia

Escape Sequences 
Escape Sequence Description 
\t Insert a tab in the text at this point. 
\b Insert a backspace in the text at this point. 
\n Insert a newline in the text at this point. 
\r Insert a carriage return in the text at this point. 
\f Insert a formfeed in the text at this point. 
\' Insert a single quote character in the text at this point. 
\" Insert a double quote character in the text at this point. 
\\ Insert a backslash character in the text at this point. 

http://docs.oracle.com/javase/tutorial/java/data/characters.html

+2

Należy zauważyć, że w języku Java te sekwencje specjalne są poprawne w ciągach literalnych otoczonych "podwójnymi cudzysłowami" oraz w postaciach literałów otoczonych "pojedynczymi cytatami". Oznacza to, że '' \ n'' jest jednym znakiem (numerycznie 0x0A), nawet jeśli wpisujesz go jako dwa znaki. –

+0

Zastanawiam się, w powłoce systemu Linux, dlaczego '\ n' i' \\ n' dają nową linię, gdzie '\\\ n' daje dosłownie' \ n'? jak radzi sobie z tym skorupa i co dzieje się za kulisami? –

+0

@MohammedNoureldin \\ n powinien być z powrotem slash + 'n' i \\\ n powinien być z powrotem slash + nowa linia. –

5
\n 

Oznacza to wstawić znak nowej linii w tekście w tym momencie.

Wystarczy przykład

System.out.println("hello\nworld"); 

wyjściowa:

hello 
world 
1

\n jest znakiem ucieczki dla ciągów, które jest zastępowany nowym obiekcie liniowym. Pisanie \n w ciąg, który drukuje się wypisze nową linię zamiast \n

Java Escape Characters

2

(jak za http://java.sun.com/...ex/Pattern.html)

znaku backslash („\”) służy do wprowadzenia uciekły konstrukty, jak zdefiniowano w powyższej tabeli, a także do cytowania znaków, które w przeciwnym razie byłyby interpretowane jako konstrukcje bez żadnych ograniczeń. Tak więc wyrażenie \\ pasuje do pojedynczego ukośnika odwrotnego i {pasuje do lewego nawiasu klamrowego.

Inne przykłady użycia:

\\ The backslash character<br> 
\t The tab character ('\u0009')<br> 
\n The newline (line feed) character ('\u000A')<br> 
\r The carriage-return character ('\u000D')<br> 
\f The form-feed character ('\u000C')<br> 
\a The alert (bell) character ('\u0007')<br> 
\e The escape character ('\u001B')<br> 
\cx The control character corresponding to x <br> 
0

W konkretnym przypadku przykładu kod z oryginalnym pytaniem

System.out.print("\n"); 

jest tam, aby przenieść się do nowego linia między inkrementacją

Pierwsza instrukcja drukowania drukuje wszystkie elementy siatki [0] [j]. Po zakończeniu najbardziej wewnętrznej pętli for, "\ n" zostanie wydrukowane, a następnie wszystkie elementy siatki [1] [j] zostaną wydrukowane w następnej linii, i to jest powtarzane, aż do uzyskania siatki 10x10 elementów dwuwymiarowa tablica, siatka.

0

\ n dodaje nową linię.

Uwaga: java ma metodę System.out.println ("Napisz tekst tutaj");

zauważyć różnicę:

Kod:

System.out.println("Text 1"); 
System.out.println("Text 2"); 

wyjściowa:

Text 1 
Text 2 

Kod:

System.out.print("Text 1"); 
System.out.print("Text 2"); 

wyjściowa:

Text 1Text 2