如何制作一个比较字符串的函数?

阿方斯

我想做一个比较字符串的函数。我不想使用相等的运算符(==),我希望它仅适用于Swift语言。

首先,我制作了一个函数,该函数接受2个字符串,并返回bool类型。然后我在for语法中循环使用了这些字符串。并且要比较这些字符,如果字符串具有相等的值,则应返回true,否则返回false。有什么更好的办法吗?

func isEqual(str1:String, str2:String) -> Bool {
    var result = false

    for char in str1 {

    }
    for char2 in str2 {

    }
    //Compare characters.
    return result
}
马丁·R

==在Swift中可以很好地与Strings一起使用。出于教育目的(正如我从您的评论中得出的结论“因为我正在练习...”),您可以将其实现为:

func myStringCompare(str1 : String, str2 : String) -> Bool {

    if count(str1) != count(str2) {
        return false
    }
    for (c1, c2) in zip(str1, str2) {
        if c1 != c2 {
            return false
        }
    }
    return true
}

zip(str1, str2) 返回给定序列中的一对序列,这是枚举“并行”字符串的便捷方法。

了解了它的工作原理后,可以将其缩短,例如:

func myStringCompare(str1 : String, str2 : String) -> Bool {

    return count(str1) == count(str2) && !contains(zip(str1, str2), { $0 != $1 })
}

比较字符串长度是必要的,因为zip()一旦其中一个字符串用完序列就会终止。看看@drewag对在Swift中的回答,我想将两个序列“连接”到一个元组序列中,以形成另一个Zip2WithNilPadding序列。

如果您不想使用内置zip()函数(再次用于教育/自学!),则可以使用字符串是序列的事实,并使用序列生成器并行枚举它们只要可以测试基础元素是否相等,这不仅适用于字符串,而且适用于任意序列,因此让我们将其设为通用函数:

func mySequenceCompare<S : SequenceType where S.Generator.Element : Equatable>(lseq : S, rseq : S) -> Bool {

    var lgen = lseq.generate()
    var rgen = rseq.generate()

    // First elements (or `nil`):
    var lnext = lgen.next()
    var rnext = rgen.next()
    while let lelem = lnext, relem = rnext {
        if lelem != relem {
            return false
        }
        // Next elements (or `nil`):
        lnext = lgen.next()
        rnext = rgen.next()
    }

    // Are both sequences exhausted?
    return lnext == nil && rnext == nil
}

测试:

mySequenceCompare("xa", "xb")  // false
mySequenceCompare("xa", "xa")  // true
mySequenceCompare("a", "aa")   // false
mySequenceCompare("aa", "a")   // false

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何制作一个函数来比较字符串而不区分大小写,不使用 strcmpi()

来自分类Dev

如何制作一个可以解析javascript中对空格敏感的字符串的函数?

来自分类Dev

我如何制作一个将接受字符串并从字符串返回第二个字符的函数?

来自分类Dev

如何制作一个可以将任何类似于javascript代码的字符串转换为对象的函数?

来自分类Dev

如何制作一个函数以便它可以搜索文件中的任何字符串?

来自分类Dev

如何制作一个检测字符串中的因子并将其转换为浮点数的函数?

来自分类Dev

如何将函数返回的字符串与Javascript中的另一个String变量进行比较

来自分类Dev

制作一个从函数返回字符串的数字拼写程序

来自分类Dev

C中的Pascal样式字符串和C样式字符串在一个函数中进行比较

来自分类Dev

制作一个由字符串组成的数组

来自分类Dev

Python:如何将列表的最后一个元素与字符串的字符进行比较

来自分类Dev

如何制作一个包含字符串但不允许数字的程序?

来自分类Dev

蟒蛇| 如何制作一个计算字符串的程序

来自分类Dev

如何比较一个字符串的值是否小于其他字符串颤动

来自分类Dev

如何创建一个接受字符和字符串并返回该字符在字符串中的索引的函数

来自分类Dev

与另一个字符串比较时,如何从Python字符串中提取唯一子字符串?

来自分类Dev

如何正确比较一个字符串和另一个字符串

来自分类Dev

如何将一个字符串值与另一个字符串值进行比较?

来自分类Dev

如何将对向量中的对的第一个元素(字符串)与另一个字符串进行比较?

来自分类Dev

如何比较/匹配/替换javascript(正则表达式)字符串与另一个忽略字符串顺序的字符串

来自分类Dev

制作一个将列表作为输入并返回列表中字符串“ bebo”的计数的函数

来自分类Dev

如何将字符串变量从一个函数传递给另一个函数?

来自分类Dev

如何将字符串从一个函数返回到另一个函数?

来自分类Dev

修改JSON字符串,比较另一个JSON字符串

来自分类Dev

如何使此PHP函数生成两个随机字符串而不是一个?

来自分类Dev

如何从列表中取出字符串并一次比较一个字符

来自分类Dev

如何编写一个接受字符串并打印出该字符串的每个字母的 JavaScript 函数?

来自分类Dev

Py解析一个代表函数的字符串

来自分类Dev

从函数返回一个无空格的字符串

Related 相关文章

  1. 1

    如何制作一个函数来比较字符串而不区分大小写,不使用 strcmpi()

  2. 2

    如何制作一个可以解析javascript中对空格敏感的字符串的函数?

  3. 3

    我如何制作一个将接受字符串并从字符串返回第二个字符的函数?

  4. 4

    如何制作一个可以将任何类似于javascript代码的字符串转换为对象的函数?

  5. 5

    如何制作一个函数以便它可以搜索文件中的任何字符串?

  6. 6

    如何制作一个检测字符串中的因子并将其转换为浮点数的函数?

  7. 7

    如何将函数返回的字符串与Javascript中的另一个String变量进行比较

  8. 8

    制作一个从函数返回字符串的数字拼写程序

  9. 9

    C中的Pascal样式字符串和C样式字符串在一个函数中进行比较

  10. 10

    制作一个由字符串组成的数组

  11. 11

    Python:如何将列表的最后一个元素与字符串的字符进行比较

  12. 12

    如何制作一个包含字符串但不允许数字的程序?

  13. 13

    蟒蛇| 如何制作一个计算字符串的程序

  14. 14

    如何比较一个字符串的值是否小于其他字符串颤动

  15. 15

    如何创建一个接受字符和字符串并返回该字符在字符串中的索引的函数

  16. 16

    与另一个字符串比较时,如何从Python字符串中提取唯一子字符串?

  17. 17

    如何正确比较一个字符串和另一个字符串

  18. 18

    如何将一个字符串值与另一个字符串值进行比较?

  19. 19

    如何将对向量中的对的第一个元素(字符串)与另一个字符串进行比较?

  20. 20

    如何比较/匹配/替换javascript(正则表达式)字符串与另一个忽略字符串顺序的字符串

  21. 21

    制作一个将列表作为输入并返回列表中字符串“ bebo”的计数的函数

  22. 22

    如何将字符串变量从一个函数传递给另一个函数?

  23. 23

    如何将字符串从一个函数返回到另一个函数?

  24. 24

    修改JSON字符串,比较另一个JSON字符串

  25. 25

    如何使此PHP函数生成两个随机字符串而不是一个?

  26. 26

    如何从列表中取出字符串并一次比较一个字符

  27. 27

    如何编写一个接受字符串并打印出该字符串的每个字母的 JavaScript 函数?

  28. 28

    Py解析一个代表函数的字符串

  29. 29

    从函数返回一个无空格的字符串

热门标签

归档