如何在值之间有宽度?
How to have width between values?
我正在努力解决 Scala for the Impatient
中提到的问题
7. Print a table of all Java properties, like this:
java.runtime.name | Java(TM) SE Runtime Environment
sun.boot.library.path | /home/apps/jdk1.6.0_21/jre/lib/i386
java.vm.version | 17.0-b16
java.vm.vendor | Sun Microsystems Inc.
java.vendor.url | http://java.sun.com/
path.separator | :
java.vm.name | Java HotSpot(TM) Server VM
You need to find the length of the longest key before you can print the table
我的尝试看起来像
scala> import scala.collection.JavaConversions.propertiesAsScalaMap
import scala.collection.JavaConversions.propertiesAsScalaMap
scala> val props: scala.collection.Map[String, String] = System.getProperties()
props: scala.collection.Map[String,String] =
Map(env.emacs -> "", java.runtime.name -> Java(TM) SE Runtime Environment, sun.boot.library.path -> /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib, java.vm.version -> 25.51-b03, gopherProxySet -> false, java.vm.vendor -> Oracle Corporation, java.vendor.url -> http://java.oracle.com/, path.separator -> :, java.vm.name -> Java HotSpot(TM) 64-Bit Server VM, file.encoding.pkg -> sun.io, user.country -> US, sun.java.launcher -> SUN_STANDARD, sun.os.patch.level -> unknown, java.vm.specification.name -> Java Virtual Machine Specification, user.dir -> /Users/harit, java.runtime.version -> 1.8.0_51-b16, java.awt.graphicsenv -> sun.awt.CGraphicsEnvironment, java.endorsed.dirs -> /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk...
然后找出键中的最大长度
scala> props.keys.map(_.length).max
res24: Int = 29
然后我
scala> for ((k,v) <- props) yield printf("%s%29s\n", k, "|" + v.trim)
但我看到的不是我想要的
env.emacs |
java.runtime.name|Java(TM) SE Runtime Environment
sun.boot.library.path|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib
java.vm.version |25.51-b03
gopherProxySet |false
java.vm.vendor |Oracle Corporation
java.vendor.url |http://java.oracle.com/
path.separator |:
java.vm.name|Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg |sun.io
user.country |US
sun.java.launcher |SUN_STANDARD
sun.os.patch.level |unknown
java.vm.specification.name|Java Virtual Machine Specification
user.dir |/Users/harit
java.runtime.version |1.8.0_51-b16
java.awt.graphicsenv|sun.awt.CGraphicsEnvironment
java.endorsed.dirs|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/endorsed
os.arch |x86_64
java.io.tmpdir|/var/folders/39/rrqhhzfn42bf7qcwqg2kywtr0000gn/T/
line.separator |
java.vm.specification.vendor |Oracle Corporation
os.name |Mac OS X
sun.jnu.encoding |UTF-8
java.library.path|/Users/harit/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
java.specification.name|Java Platform API Specification
java.class.version |52.0
sun.management.compiler|HotSpot 64-Bit Tiered Compilers
os.version |10.10.4
http.nonProxyHosts|local|*.local|169.254/16|*.169.254/16
user.home |/Users/harit
user.timezone |America/Los_Angeles
scala.home|/usr/local/Cellar/scala/2.11.7/libexec
java.awt.printerjob|sun.lwawt.macosx.CPrinterJob
file.encoding |UTF-8
java.specification.version |1.8
scala.usejavacp |true
java.class.path |""
user.name |harit
java.vm.specification.version |1.8
sun.java.command|scala.tools.nsc.MainGenericRunner
java.home|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
sun.arch.data.model |64
user.language |en
java.specification.vendor |Oracle Corporation
awt.toolkit |sun.lwawt.macosx.LWCToolkit
java.vm.info |mixed mode
java.version |1.8.0_51
java.ext.dirs|/Users/harit/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
sun.boot.class.path|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/classes:/usr/local/Cellar/scala/2.11.7/libexec/lib/akka-actor_2.11-2.3.10.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/config-1.2.1.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/jline-2.12.1.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-actors-2.11.0.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-actors-migration_2.11-1.1.0.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-compiler.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-continuations-library_2.11-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-continuations-plugin_2.11.7-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-library.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-parser-combinators_2.11-1.0.4.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-reflect.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-swing_2.11-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-xml_2.11-1.0.4.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scalap-2.11.7.jar
java.vendor |Oracle Corporation
file.separator |/
java.vendor.url.bug|http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding |UnicodeBig
sun.cpu.endian |little
socksNonProxyHosts|local|*.local|169.254/16|*.169.254/16
ftp.nonProxyHosts|local|*.local|169.254/16|*.169.254/16
sun.cpu.isalist |
res25: Iterable[Unit] = ArrayBuffer((), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ())
怎么了?
更新
我也试过了
scala> for ((k,v) <- props) yield println(k.padTo(29-k.length, " ").mkString + "|" + v)
但运气不好
env.emacs |
java.runtime.name|Java(TM) SE Runtime Environment
sun.boot.library.path|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib
java.vm.version|25.51-b03
gopherProxySet |false
java.vm.vendor |Oracle Corporation
java.vendor.url|http://java.oracle.com/
path.separator |:
java.vm.name |Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg|sun.io
user.country |US
sun.java.launcher|SUN_STANDARD
sun.os.patch.level|unknown
java.vm.specification.name|Java Virtual Machine Specification
user.dir |/Users/harit
java.runtime.version|1.8.0_51-b16
java.awt.graphicsenv|sun.awt.CGraphicsEnvironment
java.endorsed.dirs|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/endorsed
os.arch |x86_64
java.io.tmpdir |/var/folders/39/rrqhhzfn42bf7qcwqg2kywtr0000gn/T/
line.separator |
java.vm.specification.vendor|Oracle Corporation
os.name |Mac OS X
sun.jnu.encoding|UTF-8
java.library.path|/Users/harit/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
java.specification.name|Java Platform API Specification
java.class.version|52.0
sun.management.compiler|HotSpot 64-Bit Tiered Compilers
os.version |10.10.4
http.nonProxyHosts|local|*.local|169.254/16|*.169.254/16
user.home |/Users/harit
user.timezone |America/Los_Angeles
scala.home |/usr/local/Cellar/scala/2.11.7/libexec
java.awt.printerjob|sun.lwawt.macosx.CPrinterJob
file.encoding |UTF-8
java.specification.version|1.8
scala.usejavacp|true
java.class.path|""
user.name |harit
java.vm.specification.version|1.8
sun.java.command|scala.tools.nsc.MainGenericRunner
java.home |/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
sun.arch.data.model|64
user.language |en
java.specification.vendor|Oracle Corporation
awt.toolkit |sun.lwawt.macosx.LWCToolkit
java.vm.info |mixed mode
java.version |1.8.0_51
java.ext.dirs |/Users/harit/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
sun.boot.class.path|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/classes:/usr/local/Cellar/scala/2.11.7/libexec/lib/akka-actor_2.11-2.3.10.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/config-1.2.1.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/jline-2.12.1.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-actors-2.11.0.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-actors-migration_2.11-1.1.0.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-compiler.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-continuations-library_2.11-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-continuations-plugin_2.11.7-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-library.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-parser-combinators_2.11-1.0.4.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-reflect.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-swing_2.11-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-xml_2.11-1.0.4.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scalap-2.11.7.jar
java.vendor |Oracle Corporation
file.separator |/
java.vendor.url.bug|http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding|UnicodeBig
sun.cpu.endian |little
socksNonProxyHosts|local|*.local|169.254/16|*.169.254/16
ftp.nonProxyHosts|local|*.local|169.254/16|*.169.254/16
sun.cpu.isalist|
res41: Iterable[Unit] = ArrayBuffer((), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ())
正如@ymonad 在评论中指出的那样,以下内容对我有用
scala> for ((k,v) <- props) yield println(k.padTo(29, " ").mkString + "|" + v)
我认为,填充 hard-coding 值不是一个好的解决方案。我是动态写的:
val props: Properties = System.getProperties
val propsScala: mutable.Map[String, String] = props.asScala
val padding = " "
var lenght = 0
for ((k, v) <- propsScala) if (k.length > lenght) lenght = k.length else lenght
for ((k, v) <- propsScala) println(k + padding * (lenght - k.length - 1) + "| " + v)
我正在努力解决 Scala for the Impatient
中提到的问题
7. Print a table of all Java properties, like this:
java.runtime.name | Java(TM) SE Runtime Environment
sun.boot.library.path | /home/apps/jdk1.6.0_21/jre/lib/i386
java.vm.version | 17.0-b16
java.vm.vendor | Sun Microsystems Inc.
java.vendor.url | http://java.sun.com/
path.separator | :
java.vm.name | Java HotSpot(TM) Server VM
You need to find the length of the longest key before you can print the table
我的尝试看起来像
scala> import scala.collection.JavaConversions.propertiesAsScalaMap
import scala.collection.JavaConversions.propertiesAsScalaMap
scala> val props: scala.collection.Map[String, String] = System.getProperties()
props: scala.collection.Map[String,String] =
Map(env.emacs -> "", java.runtime.name -> Java(TM) SE Runtime Environment, sun.boot.library.path -> /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib, java.vm.version -> 25.51-b03, gopherProxySet -> false, java.vm.vendor -> Oracle Corporation, java.vendor.url -> http://java.oracle.com/, path.separator -> :, java.vm.name -> Java HotSpot(TM) 64-Bit Server VM, file.encoding.pkg -> sun.io, user.country -> US, sun.java.launcher -> SUN_STANDARD, sun.os.patch.level -> unknown, java.vm.specification.name -> Java Virtual Machine Specification, user.dir -> /Users/harit, java.runtime.version -> 1.8.0_51-b16, java.awt.graphicsenv -> sun.awt.CGraphicsEnvironment, java.endorsed.dirs -> /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk...
然后找出键中的最大长度
scala> props.keys.map(_.length).max
res24: Int = 29
然后我
scala> for ((k,v) <- props) yield printf("%s%29s\n", k, "|" + v.trim)
但我看到的不是我想要的
env.emacs |
java.runtime.name|Java(TM) SE Runtime Environment
sun.boot.library.path|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib
java.vm.version |25.51-b03
gopherProxySet |false
java.vm.vendor |Oracle Corporation
java.vendor.url |http://java.oracle.com/
path.separator |:
java.vm.name|Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg |sun.io
user.country |US
sun.java.launcher |SUN_STANDARD
sun.os.patch.level |unknown
java.vm.specification.name|Java Virtual Machine Specification
user.dir |/Users/harit
java.runtime.version |1.8.0_51-b16
java.awt.graphicsenv|sun.awt.CGraphicsEnvironment
java.endorsed.dirs|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/endorsed
os.arch |x86_64
java.io.tmpdir|/var/folders/39/rrqhhzfn42bf7qcwqg2kywtr0000gn/T/
line.separator |
java.vm.specification.vendor |Oracle Corporation
os.name |Mac OS X
sun.jnu.encoding |UTF-8
java.library.path|/Users/harit/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
java.specification.name|Java Platform API Specification
java.class.version |52.0
sun.management.compiler|HotSpot 64-Bit Tiered Compilers
os.version |10.10.4
http.nonProxyHosts|local|*.local|169.254/16|*.169.254/16
user.home |/Users/harit
user.timezone |America/Los_Angeles
scala.home|/usr/local/Cellar/scala/2.11.7/libexec
java.awt.printerjob|sun.lwawt.macosx.CPrinterJob
file.encoding |UTF-8
java.specification.version |1.8
scala.usejavacp |true
java.class.path |""
user.name |harit
java.vm.specification.version |1.8
sun.java.command|scala.tools.nsc.MainGenericRunner
java.home|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
sun.arch.data.model |64
user.language |en
java.specification.vendor |Oracle Corporation
awt.toolkit |sun.lwawt.macosx.LWCToolkit
java.vm.info |mixed mode
java.version |1.8.0_51
java.ext.dirs|/Users/harit/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
sun.boot.class.path|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/classes:/usr/local/Cellar/scala/2.11.7/libexec/lib/akka-actor_2.11-2.3.10.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/config-1.2.1.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/jline-2.12.1.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-actors-2.11.0.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-actors-migration_2.11-1.1.0.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-compiler.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-continuations-library_2.11-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-continuations-plugin_2.11.7-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-library.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-parser-combinators_2.11-1.0.4.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-reflect.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-swing_2.11-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-xml_2.11-1.0.4.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scalap-2.11.7.jar
java.vendor |Oracle Corporation
file.separator |/
java.vendor.url.bug|http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding |UnicodeBig
sun.cpu.endian |little
socksNonProxyHosts|local|*.local|169.254/16|*.169.254/16
ftp.nonProxyHosts|local|*.local|169.254/16|*.169.254/16
sun.cpu.isalist |
res25: Iterable[Unit] = ArrayBuffer((), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ())
怎么了?
更新
我也试过了
scala> for ((k,v) <- props) yield println(k.padTo(29-k.length, " ").mkString + "|" + v)
但运气不好
env.emacs |
java.runtime.name|Java(TM) SE Runtime Environment
sun.boot.library.path|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib
java.vm.version|25.51-b03
gopherProxySet |false
java.vm.vendor |Oracle Corporation
java.vendor.url|http://java.oracle.com/
path.separator |:
java.vm.name |Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg|sun.io
user.country |US
sun.java.launcher|SUN_STANDARD
sun.os.patch.level|unknown
java.vm.specification.name|Java Virtual Machine Specification
user.dir |/Users/harit
java.runtime.version|1.8.0_51-b16
java.awt.graphicsenv|sun.awt.CGraphicsEnvironment
java.endorsed.dirs|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/endorsed
os.arch |x86_64
java.io.tmpdir |/var/folders/39/rrqhhzfn42bf7qcwqg2kywtr0000gn/T/
line.separator |
java.vm.specification.vendor|Oracle Corporation
os.name |Mac OS X
sun.jnu.encoding|UTF-8
java.library.path|/Users/harit/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
java.specification.name|Java Platform API Specification
java.class.version|52.0
sun.management.compiler|HotSpot 64-Bit Tiered Compilers
os.version |10.10.4
http.nonProxyHosts|local|*.local|169.254/16|*.169.254/16
user.home |/Users/harit
user.timezone |America/Los_Angeles
scala.home |/usr/local/Cellar/scala/2.11.7/libexec
java.awt.printerjob|sun.lwawt.macosx.CPrinterJob
file.encoding |UTF-8
java.specification.version|1.8
scala.usejavacp|true
java.class.path|""
user.name |harit
java.vm.specification.version|1.8
sun.java.command|scala.tools.nsc.MainGenericRunner
java.home |/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
sun.arch.data.model|64
user.language |en
java.specification.vendor|Oracle Corporation
awt.toolkit |sun.lwawt.macosx.LWCToolkit
java.vm.info |mixed mode
java.version |1.8.0_51
java.ext.dirs |/Users/harit/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
sun.boot.class.path|/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre/classes:/usr/local/Cellar/scala/2.11.7/libexec/lib/akka-actor_2.11-2.3.10.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/config-1.2.1.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/jline-2.12.1.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-actors-2.11.0.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-actors-migration_2.11-1.1.0.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-compiler.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-continuations-library_2.11-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-continuations-plugin_2.11.7-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-library.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-parser-combinators_2.11-1.0.4.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-reflect.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-swing_2.11-1.0.2.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scala-xml_2.11-1.0.4.jar:/usr/local/Cellar/scala/2.11.7/libexec/lib/scalap-2.11.7.jar
java.vendor |Oracle Corporation
file.separator |/
java.vendor.url.bug|http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding|UnicodeBig
sun.cpu.endian |little
socksNonProxyHosts|local|*.local|169.254/16|*.169.254/16
ftp.nonProxyHosts|local|*.local|169.254/16|*.169.254/16
sun.cpu.isalist|
res41: Iterable[Unit] = ArrayBuffer((), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ())
正如@ymonad 在评论中指出的那样,以下内容对我有用
scala> for ((k,v) <- props) yield println(k.padTo(29, " ").mkString + "|" + v)
我认为,填充 hard-coding 值不是一个好的解决方案。我是动态写的:
val props: Properties = System.getProperties
val propsScala: mutable.Map[String, String] = props.asScala
val padding = " "
var lenght = 0
for ((k, v) <- propsScala) if (k.length > lenght) lenght = k.length else lenght
for ((k, v) <- propsScala) println(k + padding * (lenght - k.length - 1) + "| " + v)