gpt4 book ai didi

scala - 如何在 Scala 中使用函数方法(没有索引/迭代)搜索子字符串?

转载 作者:行者123 更新时间:2023-12-04 04:39:21 25 4
gpt4 key购买 nike

我正在通过阅读书籍并在 Scala 中实现一些标准算法以进行练习来学习 Scala。

我试图首先使用蛮力方法找到一个子字符串或执行精确的模式匹配程序。我知道我可以只使用 String.substring 或遍历每个字符串 (charAt) 中的字符。但我正在寻找任何功能方式来查找子字符串(不使用内置子字符串)。明确地说,功能我的意思是使用不可变和避免手动迭代等。

最佳答案

您问的问题非常广泛,因此我将提供一些提示以帮助您开始锻炼。有无数种方法可以解决这个问题,我相信更有经验的函数式程序员可能会提供更多帮助。 :)

首先获取您的字符串,获取字符,然后将其转换为列表。取自 Scala 控制台:

scala> val str = "This string is just an example."
str: String = This string is just an example.

scala> val list = str.toCharArray.toList
res15: List[Char] = List(T, h, i, s, , s, t, r, i, n, g, , i, s, , j, u, s, t, , a, n, , e, x, a, m, p, l, e, .)

Array是可变的(参见 Array Scaladoc ),但是一个 List是不可变的(见 List Scaladoc)。现在你可以开始在它上面做功能性的东西了。 :)

Scala 集合有大量您可以执行的操作。我发现作为试图改掉坏习惯的命令式程序员最有用的一些是 map , reduce , 和 fold .有关使用它们的一些提示,请查看我的博客文章 Map, reduce, and fold for the programmatically imperative

关于scala - 如何在 Scala 中使用函数方法(没有索引/迭代)搜索子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19155555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com