1. 概要

このチュートリアルでは、Scalaを使用してユーザー入力を読み取る方法を説明します。

2. ユーザー入力の取得

StdIn.readLine()メソッドを使用するだけでよいため、ユーザー入力の読み取りは簡単です。

scala> val line = scala.io.StdIn.readLine()
$ some user input

val line: String = some user input

より具体的なタイプを読みたい場合は、 StdIn クラスに、 readBoolean readByte などの多くの補助メソッドがあります。 ] readChar readDouble readInt readFloat 、および readLong

scala> val i = scala.io.StdIn.readInt()
$ 42
val i: Int = 42

scala> val i = scala.io.StdIn.readInt()
$ abc
java.lang.NumberFormatException: For input string: "abc"
  at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
  at java.lang.Integer.parseInt(Integer.java:580)
  at java.lang.Integer.parseInt(Integer.java:615)
  at scala.io.StdIn.readInt(StdIn.scala:122)
  at scala.io.StdIn.readInt$(StdIn.scala:117)
  at scala.io.StdIn$.readInt(StdIn.scala:241)
 (...)

scala> val b = scala.io.StdIn.readBoolean()
True
val b: Boolean = true

scala> val b = scala.io.StdIn.readBoolean()
abc
val b: Boolean = false

これらのメソッドは文字列変換に依存していることに注意してください。 そのため、入力が解析できない場合は、整数解析で見たように例外がスローされるか、ブール値の例で見たように暗黙的な変換を行うことができます。

3. 結論

この記事では、Scalaの基本的なタイプのいずれかとしてユーザー入力を読み取る方法を見ました。