如何在Swift 4中将String的金字塔类型转换为双精度数组

谦虚

我需要通读下面给出的字符串,以便从该字符串中将双精度数数组分隔成几行,因此每行将是一个不同的双精度数数组。

var sampleString = """
                     55
                    94 48
                   95 30 96
                 77 71 26 67
                97 13 76 38 45
              07 36 79 16 37 68
             48 07 09 18 70 26 06
           18 72 79 46 59 79 29 90
          20 76 87 11 32 07 07 49 18
        27 83 58 35 71 11 25 57 29 85
       14 64 36 96 27 11 58 56 92 18 55
     02 90 03 60 48 49 41 46 33 36 47 23
    92 50 48 02 36 59 42 79 72 20 82 77 42
  56 78 38 80 39 75 02 71 66 66 01 03 55 72
 44 25 67 84 71 67 11 61 40 57 58 89 40 56 36
85 32 25 85 57 48 84 35 47 62 17 01 01 99 89 52
06 71 28 75 94 48 37 10 23 51 06 48 53 18 74 98 15
27 02 92 23 08 71 76 84 15 52 92 63 81 10 44 10 69 93
"""

例如:第一个数组= [55],第二个数组= [94,48],依此类推。

我知道也有类似的问题,我尝试了以下字符串方法:replaceOccurances(of:with :),trimmingCharacters(in :),split(seperator :)等,然后我首先尝试了以下方法:

let lineSeperatedString = sampleString.replacingOccurrences(of: "\n", with: ",")

    let whiteSpaceTrimmedString = lineSeperatedString.replacingOccurrences(of: "  ", with: "")

    print(whiteSpaceTrimmedString)

然后输出就像:

 55,94 48, 95 30 96, 77 71 26 67,97 13 76 38 45,07 36 79 16 37 68, 48 07 09 18 70 26 06, 18 72 79 46 59 79 29 90,20 76 87 11 32 07 07 49 18,27 83 58 35 71 11 25 57 29 85, 14 64 36 96 27 11 58 56 92 18 55, 02 90 03 60 48 49 41 46 33 36 47 23,92 50 48 02 36 59 42 79 72 20 82 77 42,56 78 38 80 39 75 02 71 66 66 01 03 55 72, 44 25 67 84 71 67 11 61 40 57 58 89 40 56 36, 85 32 25 85 57 48 84 35 47 62 17 01 01 99 89 52,06 71 28 75 94 48 37 10 23 51 06 48 53 18 74 98 15,27 02 92 23 08 71 76 84 15 52 92 63 81 10 44 10 69 93

足够接近:(如果您忽略每个部分开头用逗号隔开的空白

然后,我尝试执行以下操作,以便可以将它们转换为Int,但是随后失败了,并将每个数字都转换为int本身。

let myUpdatedArray = whiteSpaceTrimmedString.split(separator: "\n")
    for i in myUpdatedArray {
        let temp = i.map{String($0)}
        for j in temp {
            if let myInt = Int(j) {
                print(myInt)
            }
        }

    }

抱歉,时间太长了,但我想展示我尝试过的所有内容,但无法自己弄清楚

马丁·R

您可以使用

  • components(separatedBy: .newlines) 将字符串分成几行,
  • map 将线映射到(外部)数组,
  • components(separatedBy: .whitespaces) 将每行分成单独的数字,
  • compactMap(Double.init)将一行中的数字转换为(内部)数组Double(忽略无效的浮点数)。

把它放在一起:

import Foundation

var sampleString = """
55
94 48
95 30 96
"""

let values = sampleString.components(separatedBy: .newlines).map {
    $0.components(separatedBy: .whitespaces).compactMap(Double.init)
}

print(values) // [[55.0], [94.0, 48.0], [95.0, 30.0, 96.0]]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在一行中将字符串数组转换为双精度数组

如何在Java中将浮点数组转换为双精度数组?

如何在Java中将双精度数组转换为整数数组?

如何在C#中将双精度数组转换为整数?

如何在 Swift 中缓存双精度数组

如何将双精度数组转换为 JS 数组?

如何将 dzi 文件转换为多瓦金字塔 tiff 格式

如何将双精度数组的数据帧转换为向量?

如何将命令行参数转换为用于计算总和的双精度数组?

如何将 Newtonsoft.Json.Linq.Array 转换为双精度数组?

如何在Swift 4中将Int32转换为String?

如何将 4 个浮点数的 ps 向量转换为 4 个双精度数并存储到 pd 数组?

如何在Swift中从最大到最小排列一个双精度数组?

如何在Swift中将String类型的变量转换为CFString?

如何在Swift中将String转换为float数组

在Swift中,双精度数的类型是Int

如何在Swift中将度数转换为风向

您如何在金字塔中为不同的内容类型提供不同的视图?

如何在金字塔的页面模板中显示对象数组?

如何在angularJS中控制打印的双精度数组?

如何在mongoDB中展平双精度数组?

如何在Android中传递多维双精度数组?

如何在JavaScript中制作金字塔?

如何在金字塔会话中存储值?

如何在Python中简化循环金字塔?

如何在Python中简化循环金字塔?

如何在Java中打印此特定的金字塔?

如何在C ++中修复此金字塔模式?

如何在Javascript中显示金字塔?