、在 Scala 中如何获取字符串”Hello”的首字符和尾字符?
时间: 2024-02-22 07:58:09 浏览: 55
在 Scala 中,可以使用字符串的 `head` 方法获取字符串的首字符,使用 `last` 方法获取字符串的尾字符。例如:
```scala
val str = "Hello"
val firstChar = str.head // 'H'
val lastChar = str.last // 'o'
```
需要注意的是,如果字符串为空,调用 `head` 和 `last` 方法会抛出异常。因此,在使用这两个方法之前,需要确保字符串不为空。
相关问题
2、在 Scala 中如何获取字符串”Hello”的首字符和尾字符?(B ) A、”Hello”(0),”Hello”(5) B、“Hello”.take(1),”Hello”.reverse(0) C、“Hello”(1),”Hello”(5) D、“Hello”.take(0),”Hello”.takeRight(1)
正确答案是 B。可以使用 `take` 方法获取字符串的前几个字符,使用 `reverse` 方法将字符串反转,然后再使用 `head` 方法获取反转后的字符串的首字符,即原字符串的尾字符。具体实现如下:
```scala
val str = "Hello"
val firstChar = str.take(1) // "H"
val lastChar = str.reverse.head // 'o'
```
需要注意的是,`reverse` 方法返回的是一个新的字符串,因此可以直接调用 `head` 方法获取反转后的字符串的首字符。
scala 获取指定字符串在指定字符串出现第n次的索引
可以使用Scala的String类提供的API实现该功能。以下是一个示例代码:
```scala
def nthIndex(str: String, subStr: String, n: Int): Option[Int] = {
var i = 0
var count = 0
while (i < str.length) {
if (str.startsWith(subStr, i)) {
count += 1
if (count == n) {
return Some(i)
}
}
i += 1
}
None
}
val str = "hello world hello world"
val subStr = "world"
val n = 2
val index = nthIndex(str, subStr, n)
if (index.isDefined) {
println(s"The $n-th index of '$subStr' in '$str' is ${index.get}")
} else {
println(s"'$subStr' does not appear $n times in '$str'")
}
```
解释一下代码:
- `nthIndex`方法接收三个参数,分别为原字符串、子字符串和第几次出现(从1开始计数)。
- 在循环中,使用`startsWith`方法判断当前位置是否以子字符串开头,如果是,就将计数器加一,直到计数器等于指定次数。
- 如果找到了指定次数的出现位置,就返回该位置的索引。
- 如果找不到,就返回`None`。
运行上述代码将输出:
```
The 2-th index of 'world' in 'hello world hello world' is 12
```
阅读全文