在scala中读取多行作为输入
我有很多行作为输入,希望阅读和打印完全相同的内容。问题是我不知道怎么做!(在scala中读取多行作为输入,scala,Scala,我有很多行作为输入,希望阅读和打印完全相同的内容。问题是我不知道怎么做!(readLine) 输入来自用户在终端中键入的内容 第一个整数是总行数 输入: 4 word localization internationalization 输出: word localization internationalization 差不多 // default condition: string is not empty, not inclusive! class TermLines (cond: (
readLine
)
输入来自用户在终端中键入的内容
第一个整数是总行数
输入:
4
word
localization
internationalization
输出:
word
localization
internationalization
差不多
// default condition: string is not empty, not inclusive!
class TermLines (cond: (String => Boolean) = _ != "") extends Iterator[String] {
var s = readLine;
def hasNext = cond(s);
def next = { var r = s; s = readLine; r }
}
那就这样说吧
println((new TermLines).toVector.mkString("\n")) // till empty
或
解决了
import scala.io.StdIn
object Solution extends App
{
val numOfLines = StdIn.readInt()
def words: Seq[String] = for (_ <- 1 to numOfLines) yield StdIn.readLine()
def sort = words.map
{
case word => word
}
sort.foreach(println)
}
导入scala.io.StdIn
对象解决方案扩展应用程序
{
val numOfLines=StdIn.readInt()
def words:Seq[String]=for(uword)
}
sort.foreach(println)
}
输入来自用户在终端中输入。因为readLine从stdin中读取了一行输入。什么不起作用?我希望程序同时读取多行!readLine只读取一行2个选项:调用readLine
多次,或者根据中的编写自己的实用程序putStream
调用.map()
没有做任何事情排序
与单词
完全相同。这不是全部代码。我剪切了代码。如果word.length>10=>(s“${word.head}${(word.length-2)。toString}${word word last}”)case word=>word但是你是对的!两组参数()
是不必要的,而.toString
是不必要的。使用readInt()
是危险的。很高兴它对您有用,但对于实际发布的问题,它不是一个很好的解决方案。
import scala.io.StdIn
object Solution extends App
{
val numOfLines = StdIn.readInt()
def words: Seq[String] = for (_ <- 1 to numOfLines) yield StdIn.readLine()
def sort = words.map
{
case word => word
}
sort.foreach(println)
}