\r\n, \r and \n what is the difference between them?


I need to ask about the difference in a string between \r\n, \r and \n. How is a string affected by each?

I have to replace the occurrences of \r\n and \r with \n but I cannot get how are they different in a string...

I know that \r is like hitting enter and \n is for a new line.

1/2/2019 8:09:29 AM

All 3 of them represent the end of a line. But...

  • \r (Carriage Return) → moves the cursor to the beginning of the line without advancing to the next line
  • \n (Line Feed) → moves the cursor down to the next line without returning to the beginning of the line — In a *nix environment \n moves to the beginning of the line.
  • \r\n (End Of Line) → a combination of \r and \n

They are normal symbols as 'a' or 'ю' or any other. Just (invisible) entries in a string. \r moves cursor to the beginning of the line. \n goes one line down.

As for your replacement, you haven't specified what language you're using, so here's the sketch:

someString.replace("\r\n", "\n").replace("\r", "\n")


A carriage return (\r) makes the cursor jump to the first column (begin of the line) while the newline (\n) jumps to the next line and eventually to the beginning of that line. So to be sure to be at the first position within the next line one uses both.