Advertisement
Guest User

Untitled

a guest
Apr 18th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 4.56 KB | None | 0 0
  1. def printSystemProp() {
  2.   val sysProp = JavaConverters.propertiesAsScalaMap(System.getProperties)
  3.  
  4.   val (maxKeyLength, avgValueLength) = {
  5.     val info = sysProp.foldLeft((0, 0))( // maxKeyLength, avgValueLength
  6.       (b, a) => {
  7.         val maxKeyLength = if (a._1.length > b._1) a._1.length else b._1
  8.         val sumValueLength = b._2 + a._2.length
  9.         (maxKeyLength, sumValueLength)
  10.       }
  11.     )
  12.     (info._1, info._2 / sysProp.size)
  13.   }
  14.  
  15.   // define padding and width of columns
  16.   val leftPadding = 10
  17.   val rightPadding = 10
  18.   val widthKeyColumn = maxKeyLength + leftPadding
  19.   val widthValueColumn = avgValueLength + rightPadding
  20.  
  21.   // print table
  22.   printBorder()
  23.   for ((k, v) <- sysProp; if v.length <= avgValueLength && v.length > 10) {
  24.     // for simplification print such 10 < values <= avgValueLength
  25.     printRow(k, v)
  26.   }
  27.   printBorder()
  28.  
  29.   /**
  30.     * Print one row for key and value.
  31.     *
  32.     * @param key   Key
  33.     * @param value Value
  34.     */
  35.   def printRow(key: String, value: String) = {
  36.     print("|" + key + " " * (widthKeyColumn - key.length) + "|"
  37.       + value + " " * (widthValueColumn - value.length) + "|\n")
  38.   }
  39.  
  40.   /**
  41.     * Print border (top, bottom)
  42.     */
  43.   def printBorder() = {
  44.     print("|" + "-" * widthKeyColumn + "|" + "-" * widthValueColumn + "|\n")
  45.   }
  46. }
  47.  
  48. |---------------------------------------|-------------------------------------------------------------------------------|
  49. |java.runtime.name                      |Java(TM) SE Runtime Environment                                                |
  50. |sun.boot.library.path                  |F:\Tools\Java\jdk1.8.0_111\jre\bin                                             |
  51. |java.vm.vendor                         |Oracle Corporation                                                             |
  52. |java.vendor.url                        |http://java.oracle.com/                                                        |
  53. |java.vm.name                           |Java HotSpot(TM) 64-Bit Server VM                                              |
  54. |sun.java.launcher                      |SUN_STANDARD                                                                   |
  55. |sun.os.patch.level                     |Service Pack 1                                                                 |
  56. |java.vm.specification.name             |Java Virtual Machine Specification                                             |
  57. |user.dir                               |C:\ProgramData\Microsoft\Windows\Start Menu\Programs\JetBrains                 |
  58. |java.runtime.version                   |1.8.0_111-b14                                                                  |
  59. |java.awt.graphicsenv                   |sun.awt.Win32GraphicsEnvironment                                               |
  60. |java.endorsed.dirs                     |F:\Tools\Java\jdk1.8.0_111\jre\lib\endorsed                                    |
  61. |java.io.tmpdir                         |C:\Users\aboznyak\AppData\Local\Temp\                                          |
  62. |java.vm.specification.vendor           |Oracle Corporation                                                             |
  63. |java.specification.name                |Java Platform API Specification                                                |
  64. |sun.management.compiler                |HotSpot 64-Bit Tiered Compilers                                                |
  65. |user.home                              |C:\Users\aboznyak                                                              |
  66. |java.awt.printerjob                    |sun.awt.windows.WPrinterJob                                                    |
  67. |java.home                              |F:\Tools\Java\jdk1.8.0_111\jre                                                 |
  68. |java.specification.vendor              |Oracle Corporation                                                             |
  69. |awt.toolkit                            |sun.awt.windows.WToolkit                                                       |
  70. |java.ext.dirs                          |F:\Tools\Java\jdk1.8.0_111\jre\lib\ext;C:\Windows\Sun\Java\lib\ext             |
  71. |java.vendor                            |Oracle Corporation                                                             |
  72. |java.vendor.url.bug                    |http://bugreport.sun.com/bugreport/                                            |
  73. |sun.io.unicode.encoding                |UnicodeLittle                                                                  |
  74. |---------------------------------------|-------------------------------------------------------------------------------|
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement