Scala中的基本字符串操作和插值

473 阅读3分钟

在这篇文章中,我们将谈一谈字符串和一些基本的字符串操作。然后,我们将讨论Scala中的字符串插值。

Strings in ScalaStrings in Scala

什么是字符串?

Scala中的字符串是一个字符的集合。在Scala中,字符串对象是不可变的,这意味着它们在被创建后不能被改变。

val myString: String = "This is a blog"
println(myString)

Output :- This is a blog

什么是字符串操作?

在字符串上执行的获取任何特定值的任务被称为字符串操作。
比如说 计算一个字符串的长度就是一个字符串操作。

我们主要将一个复杂的字符串问题分解成小的字符串操作或任务,如确定一个字符串的长度,比较两个字符串,或在一个字符串中搜索一个特定的字符,这些就是必要的字符串操作。

一些基本的字符串操作有:

  • charAt()
  • 长度
  • startsWith()
  • replace()
  • toLowerCase()

1- char charAt( Int index )

该方法返回指定索引处的字符。

object StringOperations extends App{
  val str: String = "Hello"
  println(str.charAt(2))
}

Output :- l

2- int length()

该方法返回一个字符串的长度。

object StringOperations extends App{
  val str1: String = "Hello"
  println(str1.length)
}

Output :- 5

3- String toLowerCase()

该方法将所有的字符转换为小写。

object StringOperations extends App{
  val str2 = "This is my first blog."
  println(str2.toLowerCase())
}

Output :- this is my first blog.

4- Boolean startsWith(String prefix, int toffset)

如果字符串以给定索引处的子串开始,该方法返回true。如果不是,它将返回false。

object StringOperations extends App{ 
  val str3 = "Helloall"
  println(str3.startsWith("He"))
}

Output :- true

5- String replace(char oldChar, char newChar)

该方法用newChar的出现来替换所有oldChar的出现。

object StringOperations extends App{ 
  val str4 = "He has an apple"
  println(str4.replace('a','@'))
}

Output :- He h@s @n @pple

Let's take a look at a code snippet that demonstrates string operations.

Basic string operationsBasic string operations

字符串插值。

字符串插值是Scala中的一种新机制,它允许我们从你的数据中创建字符串,它使用户能够在处理的字符串字面中直接嵌入变量引用。

为了使用这个Scala功能,我们必须遵守一些准则。

  • 字符串必须以s / f /raw为起始字符来定义
  • 字符串中的变量必须有'$'作为前缀。
  • 表达式必须用大括号(,)括起来,并且必须使用"$"作为前缀。

字符串插值器的类型 :

1) s - 插值器

我们可以访问字符串中的变量、对象字段和函数调用。变量可以直接在字符串中使用,方法是在任何字符串字面前加上's'。

object StringInterpolation extends App{
  val name = "Pragati"
  println(s"Hello, My name is $name ")
  println(s"3 * 5 = ${3*5}")
}

Output :- Hello, My name is Pragati
          3 * 5 = 15

2) f - 插值器

类似于其他语言中的printf,在任何字符串字头后面加上f可以创建基本的格式化字符串,这种插值可以帮助轻松地格式化数字。

object StringInterpolation extends App{
  val speed = 50.678
  println(f"He is driving at $speed%2.2f km/hr")
}

Output :- He is driving at 50.68 km/hr

3) 原始插值器

raw插值器与s插值器类似,不同的是它不在字符串中进行任何字面转义。

object StringInterpolation extends App{
  val str = raw"New\n Blog Post"
  println(str)
}

Output :- New\n Blog Post

Let's take a look at a code snippet that demonstrates string interpolation

String interpolation in scalaString interpolation in scala

总结

因此,在这篇文章中,我们介绍了一些基本的字符串操作。然后,我们了解了Scala中的字符串插值以及它的各种类型。