Scala println in a for loop
Solution 1
lines
is a single string, not some iterable container of strings. This is because you called the .mkString
method on it.
When you iterate over a string, you do so one character at a time. So the line
in your for
is not actually a line, it's a single character.
What you probably intended to do was call .getLines
instead of .mkString
Solution 2
I suspect that for (line <- lines) print(line)
doesn't put a line in line
but instead a character. Making the output as expected since the \n
is there too. When you the replace the print
with println
every character gets its own line.
Admin
Updated on July 28, 2022Comments
-
Admin almost 2 years
The following Scala code does just what I expect it to - it prints each line of some_file.txt.
import scala.io.Source val lines = Source.fromPath("some_file.txt").mkString for (line <- lines) print(line)
If I use println instead of print, I expect to see some_file.txt printed out with double-spacing. Instead, the program prints a newline after every character of some_file.txt. Could someone explain this to me? I'm using Scala 2.8.0 Beta 1.