Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 将所有线条设置为相同宽度(添加空格)_Scala_Text_Grid - Fatal编程技术网

Scala 将所有线条设置为相同宽度(添加空格)

Scala 将所有线条设置为相同宽度(添加空格),scala,text,grid,Scala,Text,Grid,我目前正在尝试用我的文本制作一个网格。如果我有这样的文本: AAAAA\n BBBBBBB\n EEEE\n CCCCCC\n AAAAA \n BBBBBBB\n EEEE \n CCCCCC \n 我希望它是这样的: AAAAA\n BBBBBBB\n EEEE\n CCCCCC\n AAAAA \n BBBBBBB\n EEEE \n CCCCCC \n 我做了一个简单的函数,可以做到这一点,但在我看来,这绝对不是正确的方法(太长了): private def fixT

我目前正在尝试用我的文本制作一个网格。如果我有这样的文本:

AAAAA\n
BBBBBBB\n
EEEE\n
CCCCCC\n
AAAAA  \n
BBBBBBB\n
EEEE   \n
CCCCCC \n
我希望它是这样的:

AAAAA\n
BBBBBBB\n
EEEE\n
CCCCCC\n
AAAAA  \n
BBBBBBB\n
EEEE   \n
CCCCCC \n
我做了一个简单的函数,可以做到这一点,但在我看来,这绝对不是正确的方法(太长了):

private def fixText(行:Vector[String]):Vector[String]={
val fixedLines=用于(i知道:

"aaa".padTo(5, 'A') // aaaAA
你可以做:

val input = "AAAAA\nBBBBBBB\nEEEE\nCCCCCC\n".split("\n")
val max = input.map(_.size).max // BBBBBBB => 7
input.map(s => s.padTo(max, ' ')).mkString("\n")
它首先在拆分行后获取元素的最大长度,然后在返回前用适当数量的字符填充所有行

不完全是一行,但一行可能意味着通过多次计算,性能损失:

val input = "AAAAA\nBBBBBBB\nEEEE\nCCCCCC\n"
input.split("\n").map(s => s.padTo(input.split("\n").map(_.size).max, ' ')).mkString("\n")

我也受着把每件事都变成一行的诱惑,但这并不总是一个好主意