Arrays Scala格式化数组.mkString

Arrays Scala格式化数组.mkString,arrays,scala,Arrays,Scala,当我在Scala中打印多维数组中的行时,我试图获得一个统一的布局。基本上,我想要得到的结果是: 1 2 3 4 5 6 7 8 9 10 11 12 2 4 6 8 10 12 14 16 18 20 22 24 3 6 9 12 15 18 21 24 27 30 33 36 基本上我想要4个空格,但当数字超过1个字符时需要更改。有什么想法吗?到目前为止,我所想到的是: object Main {

当我在Scala中打印多维数组中的行时,我试图获得一个统一的布局。基本上,我想要得到的结果是:

1   2   3   4   5   6   7   8   9  10  11  12
2   4   6   8  10  12  14  16  18  20  22  24
3   6   9  12  15  18  21  24  27  30  33  36
基本上我想要4个空格,但当数字超过1个字符时需要更改。有什么想法吗?到目前为止,我所想到的是:

object Main {
  def main(args: Array[String]) {
    var i1, i2 = 0
    var grid = Array.ofDim[Int](12, 12)

    for(i1 <- 1 to 12){

      for(i2 <- 1 to 12) {
        grid(i1-1)(i2-1) = i1 * i2
      }

    }

    for (g <- grid) {
      println(g.mkString("\t"))
    }

  }
}
objectmain{
def main(参数:数组[字符串]){
变量i1,i2=0
var grid=Array.ofDim[Int](12,12)
对于(i1格式:

scala> for (g <- grid) println(g map (i => f"$i%4d") mkString)
   1   2   3   4   5   6   7   8   9  10  11  12
scala>for(g f“$i%4d”)mkString)
1   2   3   4   5   6   7   8   9  10  11  12
编辑以确保完整性:

Welcome to Scala 2.12.0-M3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_60).
Type in expressions for evaluation. Or try :help.

scala> :pa
// Entering paste mode (ctrl-D to finish)

    var i1, i2 = 0
    var grid = Array.ofDim[Int](12, 12)

    for(i1 <- 1 to 12){

      for(i2 <- 1 to 12) {
        grid(i1-1)(i2-1) = i1 * i2
      }

    }

// Exiting paste mode, now interpreting.

i1: Int = 0
i2: Int = 0
grid: Array[Array[Int]] = Array(Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), Array(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24), Array(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36), Array(4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48), Array(5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60), Array(6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72), Array(7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84), Array(8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96), Array(9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108), Array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120), Array(11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132), Array(12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144))

scala> for (g <- grid) println(g map (i => f"$i%4d") mkString)
warning: there was one feature warning; re-run with -feature for details
   1   2   3   4   5   6   7   8   9  10  11  12
   2   4   6   8  10  12  14  16  18  20  22  24
   3   6   9  12  15  18  21  24  27  30  33  36
   4   8  12  16  20  24  28  32  36  40  44  48
   5  10  15  20  25  30  35  40  45  50  55  60
   6  12  18  24  30  36  42  48  54  60  66  72
   7  14  21  28  35  42  49  56  63  70  77  84
   8  16  24  32  40  48  56  64  72  80  88  96
   9  18  27  36  45  54  63  72  81  90  99 108
  10  20  30  40  50  60  70  80  90 100 110 120
  11  22  33  44  55  66  77  88  99 110 121 132
  12  24  36  48  60  72  84  96 108 120 132 144

scala> for (g <- grid) println(g map (i => "%4d" format i) mkString)
warning: there was one feature warning; re-run with -feature for details
   1   2   3   4   5   6   7   8   9  10  11  12
   2   4   6   8  10  12  14  16  18  20  22  24
   3   6   9  12  15  18  21  24  27  30  33  36
   4   8  12  16  20  24  28  32  36  40  44  48
   5  10  15  20  25  30  35  40  45  50  55  60
   6  12  18  24  30  36  42  48  54  60  66  72
   7  14  21  28  35  42  49  56  63  70  77  84
   8  16  24  32  40  48  56  64  72  80  88  96
   9  18  27  36  45  54  63  72  81  90  99 108
  10  20  30  40  50  60  70  80  90 100 110 120
  11  22  33  44  55  66  77  88  99 110 121 132
  12  24  36  48  60  72  84  96 108 120 132 144

scala> 
欢迎使用Scala 2.12.0-M3(Java热点(TM)64位服务器虚拟机,Java 1.8.060)。
键入要计算的表达式。或尝试:help。
scala>:pa
//进入粘贴模式(按ctrl-D键完成)
变量i1,i2=0
var grid=Array.ofDim[Int](12,12)
用于(i1用于(g“%4d”格式i)mkString)
警告:有一个功能警告;有关详细信息,请使用-feature重新运行
1   2   3   4   5   6   7   8   9  10  11  12
2   4   6   8  10  12  14  16  18  20  22  24
3   6   9  12  15  18  21  24  27  30  33  36
4   8  12  16  20  24  28  32  36  40  44  48
5  10  15  20  25  30  35  40  45  50  55  60
6  12  18  24  30  36  42  48  54  60  66  72
7  14  21  28  35  42  49  56  63  70  77  84
8  16  24  32  40  48  56  64  72  80  88  96
9  18  27  36  45  54  63  72  81  90  99 108
10  20  30  40  50  60  70  80  90 100 110 120
11  22  33  44  55  66  77  88  99 110 121 132
12  24  36  48  60  72  84  96 108 120 132 144
斯卡拉>
格式:

scala> for (g <- grid) println(g map (i => f"$i%4d") mkString)
   1   2   3   4   5   6   7   8   9  10  11  12
scala>for(g f“$i%4d”)mkString)
1   2   3   4   5   6   7   8   9  10  11  12
编辑以确保完整性:

Welcome to Scala 2.12.0-M3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_60).
Type in expressions for evaluation. Or try :help.

scala> :pa
// Entering paste mode (ctrl-D to finish)

    var i1, i2 = 0
    var grid = Array.ofDim[Int](12, 12)

    for(i1 <- 1 to 12){

      for(i2 <- 1 to 12) {
        grid(i1-1)(i2-1) = i1 * i2
      }

    }

// Exiting paste mode, now interpreting.

i1: Int = 0
i2: Int = 0
grid: Array[Array[Int]] = Array(Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), Array(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24), Array(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36), Array(4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48), Array(5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60), Array(6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72), Array(7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84), Array(8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96), Array(9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108), Array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120), Array(11, 22, 33, 44, 55, 66, 77, 88, 99, 110, 121, 132), Array(12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144))

scala> for (g <- grid) println(g map (i => f"$i%4d") mkString)
warning: there was one feature warning; re-run with -feature for details
   1   2   3   4   5   6   7   8   9  10  11  12
   2   4   6   8  10  12  14  16  18  20  22  24
   3   6   9  12  15  18  21  24  27  30  33  36
   4   8  12  16  20  24  28  32  36  40  44  48
   5  10  15  20  25  30  35  40  45  50  55  60
   6  12  18  24  30  36  42  48  54  60  66  72
   7  14  21  28  35  42  49  56  63  70  77  84
   8  16  24  32  40  48  56  64  72  80  88  96
   9  18  27  36  45  54  63  72  81  90  99 108
  10  20  30  40  50  60  70  80  90 100 110 120
  11  22  33  44  55  66  77  88  99 110 121 132
  12  24  36  48  60  72  84  96 108 120 132 144

scala> for (g <- grid) println(g map (i => "%4d" format i) mkString)
warning: there was one feature warning; re-run with -feature for details
   1   2   3   4   5   6   7   8   9  10  11  12
   2   4   6   8  10  12  14  16  18  20  22  24
   3   6   9  12  15  18  21  24  27  30  33  36
   4   8  12  16  20  24  28  32  36  40  44  48
   5  10  15  20  25  30  35  40  45  50  55  60
   6  12  18  24  30  36  42  48  54  60  66  72
   7  14  21  28  35  42  49  56  63  70  77  84
   8  16  24  32  40  48  56  64  72  80  88  96
   9  18  27  36  45  54  63  72  81  90  99 108
  10  20  30  40  50  60  70  80  90 100 110 120
  11  22  33  44  55  66  77  88  99 110 121 132
  12  24  36  48  60  72  84  96 108 120 132 144

scala> 
欢迎使用Scala 2.12.0-M3(Java热点(TM)64位服务器虚拟机,Java 1.8.060)。
键入要计算的表达式。或尝试:help。
scala>:pa
//进入粘贴模式(按ctrl-D键完成)
变量i1,i2=0
var grid=Array.ofDim[Int](12,12)
用于(i1用于(g“%4d”格式i)mkString)
警告:有一个功能警告;有关详细信息,请使用-feature重新运行
1   2   3   4   5   6   7   8   9  10  11  12
2   4   6   8  10  12  14  16  18  20  22  24
3   6   9  12  15  18  21  24  27  30  33  36
4   8  12  16  20  24  28  32  36  40  44  48
5  10  15  20  25  30  35  40  45  50  55  60
6  12  18  24  30  36  42  48  54  60  66  72
7  14  21  28  35  42  49  56  63  70  77  84
8  16  24  32  40  48  56  64  72  80  88  96
9  18  27  36  45  54  63  72  81  90  99 108
10  20  30  40  50  60  70  80  90 100 110 120
11  22  33  44  55  66  77  88  99 110 121 132
12  24  36  48  60  72  84  96 108 120 132 144
斯卡拉>

可能prettyprint做了一些开箱即用的事情。我得到了一个错误
错误:'),但找到了字符串文字。对于(g f“$I%4d”)mkString)
字符串插值要求
f
和引号
之间没有空格。因此
f“hi”
不是
f“hi“
。可能prettyprint做了一些开箱即用的事情。我得到了一个错误
错误:”),但找到了字符串文字。对于(g f“$I%4d”)mkString)
字符串插值要求
f
和引号
之间没有空格。因此
f“hi”
不是
f“hi”