Руководство по Scala. Строки.

В данной статье мы рассмотрим строки (Strings) в языке программирования Scala.

Так же как и в Java в Scala строки – это неизменяемые (immutable) объекты.

Для создания строки в Scala используется запись следующего вида:


var simpleString = "This is simple String";

ИЛИ

var = simpleString:String = "This is simple String";

Рассмотрим простой пример:


package net.proselyte.scalatutorial.strings

/**
  * Simple Scala class that demonstrates work with Strings in Scala.
  *
  * @author Eugene Suleimanov
  */

object StringDemo {
  val simpleString = "This is simple String";

  def main(args: Array[String]) {
    println(simpleString);
  }
}

В результате выполнения данной программы мы получим следующий вывод в консоль:


This is simple String

Process finished with exit code 0

Конкатенация строк

Конкатенация строк – это механизм объединения двух и более строк в одну.

Рассмотрим следующий пример:


package net.proselyte.scalatutorial.strings

/**
  * Simple Scala class that demonstrates String Concatenation.
  *
  * @author Eugene Suleimanov
  */

object StringConcatenationDemo {
  def main(args: Array[String]) {
    val developerName: String = "Eugene Suleimanov";
    val developerSpecialty: String = "Java/Scala developer";

    val developerData: String = developerName + " is a " + developerSpecialty + ".";
    println(developerData);
  }
}

В результате выполнения данной программы мы получим следующий вывод в консоль:


Eugene Suleimanov is a Java/Scala developer.
Process finished with exit code 0

Интерполяция строк

Интерполяция строк – это механизм создания строк в языке программирования Scala.

Существует три интерполятора:

Интерполятор S

Данный интерполятор позволяет нам использовать переменные обрабатываемую строку.

Рассмотрим простой пример:


package net.proselyte.scalatutorial.strings

/**
  * Simple Scala class that demonstrates 's' interpolator.
  *
  * @author Eugene Suleimanov
  */

object InterpolatorSDemo {
  def main(args: Array[String]) {
    val developerName = "Eugene Suleimanov";

    println(s"Developer name: $developerName");
    println(s"100 * 8 = ${100 * 8}");
  }
}

В результате выполнения данной программы мы получим следующий результат:


Developer name: Eugene Suleimanov
100 * 8 = 800

Process finished with exit code 0

Интерполятор F
Данный интерполятор позволяет нам создавать форматированные строки.
Рассмотрим следующий пример:


package net.proselyte.scalatutorial.strings

/**
  * Simple Scala class that demonstrates 's' interpolator.
  *
  * @author Eugene Suleimanov
  */

object InterpolatorFDemo {
  def main(args: Array[String]) {
    val product = "Milk";
    val price = 12.5d;

    println(f"$product%s price is: $price%2.2f");
  }
}

Результатом выполнения данной программы будет следующий вывод в консоль:


Milk price is: 12.50

Process finished with exit code 0

Интерполятор RAW
Данный интерполятор позволяет нам создавать строки, которые игнорируют escape последовательности. В остальном данный интерполятор крайне похож на интерполятор S.

Рассмотрим пример ниже:


package net.proselyte.scalatutorial.strings

/**
  * Simple Scala class that demonstrates 'raw' interpolator.
  *
  * @author Eugene Suleimanov
  */

object InterpolatorRawDemo {
  def main(args: Array[String]) {
    println(raw"This \b String ignores \n escape sequences \n");
  }
}

Данная программы выдаёт следующий результат:


package net.proselyte.scalatutorial.strings

/**
  * Simple Scala class that demonstrates 'raw' interpolator.
  *
  * @author Eugene Suleimanov
  */

object InterpolatorRawDemo {
  def main(args: Array[String]) {
    println(raw"This \b String ignores \n escape sequences \n");
  }
}

Кроме всего указанного выше, класс String имеет множество методов, с которыми вы можете ознакомиться в документации языка программирования Scala.

На этом мы заканчиваем изучение строк в Scala.
В следующей статье мы рассмотрим коллекции в данном языке программирования.