Scala: нарисовать стол на консоли

Мне нужно отобразить таблицу в консоли.

Мое простое решение, если вы назовете его «решением», состоит в следующем:

  override def toString() = {
    var res = "\n"
      var counter = 1;
      res += stateDb._1 + "\n"
      res += "  +----------------------------+\n"
      res += "  +     State Table            +\n"
      res += "  +----------------------------+\n"
      for (entry <- stateDb._2) {
        res += "  | " + counter + "\t | " + entry._1 + " | " + entry._2 + " |\n"
        counter += 1;
      }
      res += "  +----------------------------+\n"
      res += "\n"
    res

  }

Нам не нужно спорить об этом

выглядит плохо при отображениикод b выглядит как-то не так

На самом деле, такой вопрос был задан для C #, но я хотел бы также узнать хорошее решение для Scala.

Итак, как (приятно / хорошо / просто / что угодно) нарисовать такую таблицу в Scala на консоли?

-------------------------------------------------------------------------
|    Column 1     |    Column 2     |    Column 3     |    Column 4     |
-------------------------------------------------------------------------
|                 |                 |                 |                 |
|                 |                 |                 |                 |
|                 |                 |                 |                 |
-------------------------------------------------------------------------

Ответы на вопрос(4)

Ваш ответ на вопрос