最终目标:把整数变成手写的长手。
我看过一些关于这个问题的讨论,这些讨论我都不知道。我遇到过一些函数,它们很高兴地将字符串拆分并打印出字符,但在数组中捕获这些字符似乎是不可能的。
似乎单个字符可以通过下标访问,但不能对其进行操作。
如果删除注释,下面将打印出1、2、9、5、0,但是当我运行if循环时,得到的是以错误顺序写入的数字字符串。

let sentence = "129.50"
for (character) in sentence {
  //  print(character)
        if character == "0" {
        print("zero")
    }
        if character == "1" {
            print("one")
    }
        if character == "2" {
        print("two")
    }

                etc etc

我还试图通过一个函数访问索引函数,尽管它每次打印出来的时候总是在最后崩溃。
func speakNum(_ num:Int) {
    let strgNum = String(num)
    for t in 0...strgNum.count {
        let index = strgNum.index(strgNum.startIndex, offsetBy:t)
        //strgnum.index(strgNum.startIndex, offsetBy:t)
      print(String(strgNum[index]))
    }
}

感谢任何帮助。

最佳答案

这是你学习TDD的好时机。测试驱动开发。从一个简单的案例开始,你能想到的最简单的。。。

assert(writtenOut("1") == "one")

执行上述操作,然后添加另一个测试:
assert(writtenOut("1") == "one")
assert(writtenOut("2") == "two")

对所有数字和小数点执行上述操作。您还应该处理错误情况:
assert(writtenOut("d") == "")

然后尝试更复杂的事情:
assert(writtenOut("12") == "one two") // or do you want "twelve" in this case?

你可以自己动手,从小事做起,一步步往上爬。当你完成的时候,你将有一个工作的函数和一系列的测试来证明它是有效的。

关于swift - 如何在Swift 4.2中捕获字符串中的各个字符并将其放置在数组中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52141707/

10-14 21:24
查看更多