Swift IOS,如何将应用程序用户输入的句子的字母大写,示例;第四个字母和第六个字母?

2024-06-10

用户在文本字段中输入一个句子, 然后在一个文本字段中输入数字 4,在另一个文本字段中输入数字 6。它将第 4 个字母和第 6 个字母所在的句子大写。

例如,用户输入:“一年有 12 个月”

输出将是:“一年有 12 个月”。

如何将句子中的第四个和第六个字母大写?:


这是您要找的吗?

func capitalize(string: String, positions: IndexSet) -> String {
    let range = (0..<string.count)
    guard string.count > 0,
        positions.allSatisfy({ range ~= $0 }) else {
        fatalError("Couldn't capitalize")
    }

    return String(string.enumerated().map{ (index, char) in
        return positions.contains(index) ? String(char).capitalized.first! : char
    })
}

var str = "there are 12 months in a year"
capitalize(string: str, positions: [3, 6])  //"theRe Are 12 months in a year"

如果您只想计算字母,并且从 1 开始计数:

func capitalize(string: String, positions: IndexSet) -> String {

    guard string.count > 0 else {
        fatalError("There is nothing to capitalize")
    }

    let zeroBasedPositions = positions.map {$0 - 1}

    guard zeroBasedPositions.allSatisfy({ $0 >= 0 }) else {
        fatalError("The positions should be one-based")
    }

    let letterIndexes = string
        .enumerated()
        .filter { (index, char) in
            CharacterSet(charactersIn: String(char))
                .isSubset(of: CharacterSet.letters)
        }.map { $0.0 }

    guard let positionsMax = zeroBasedPositions.max(),
        positionsMax <= letterIndexes.count
        else {
            fatalError("There are only \(letterIndexes.count) letters")
    }

    let lettersToCapitalizeIndexes = zeroBasedPositions.map { letterIndexes[$0] }

    return String(string.enumerated().map{ (index, char) in
        if lettersToCapitalizeIndexes.contains(index) {
            return String(char).capitalized.first!
        } else {
            return char
        }
    })
}

var str = "there are 12 months in a year"
capitalize(string: str, positions: [4, 6])  //"theRe Are 12 months in a year"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift IOS,如何将应用程序用户输入的句子的字母大写,示例;第四个字母和第六个字母? 的相关文章

随机推荐

  • 如何在 Eclipse RCP 项目中使用 groovy?

    我有一个 Eclipse RCP 项目 我想在其中使用 Groovy 我尝试做的是 1 添加 Groovy Nature 2 在 src 文件夹下创建Groovy文件3 从 View 的createPartControl 方法调用groov
  • 如何在 Java FX 中以编程方式模拟箭头键按下

    我想让我的 JFX 应用程序模拟箭头键按下 当它们在 TextField 中注册时 但我不知道如何发送字符串或字节以外的任何内容 我正在想象这样的事情 static EventHandler
  • 使用 VBA 从 Word 发送 HTTP 请求

    我正在尝试将数据从 Word 文档发送到网页 我找到了一些代码 将其粘贴到新模块中并保存 当我运行它时 我收到 编译错误 用户定义的类型未定义 My code Sub http Dim MyRequest As New WinHttpReq
  • 对V4L2的一个误解

    我在 C 程序中的缓冲区大小方面遇到了一个小问题 我使用 V4L2 从相机中抓取 YUYV 图像 有一个示例here http linuxtv org downloads v4l dvb apis capture example html
  • 在 Android Studio 2.2 中启用注释处理器选项

    我正在尝试在我的项目中使用 java 8 为此我添加了 jack 编译器 启用 jack 后 我开始遇到使用注释处理的库的问题 并在网上查找我读到我需要 android studio 2 2 和 com android tools buil
  • 如何在浏览器调整大小时刷新屏幕?

    是否可以根据浏览器尺寸的变化刷新页面 我使用一些样式在页面上创建区域 如果浏览器缩小 布局就会中断 也许我可以用 jQuery 检测文档大小的变化 为现在查看此内容的任何人进行更新 JQuery 现在认为绑定是一个已弃用的函数 Proxim
  • 无法创建发布配置文件 - Azure

    我创建了一个 ASP Net Web 应用程序 MVC 以将其发布到 Azure VM 上 但是 我收到以下错误 在给定的文件夹结构中 没有名为的文件PublishProfiles AppService pubxml创建的 有人可以帮我解决
  • 更新/编辑 coreData 管理对象

    当用户单击 UITableView 中基于 cell accessoryType 的单元格时 我尝试编辑 CoreData 对象 以显示该项目是否已被单击 这是当前的代码 void tableView UITableView tableVi
  • ByteBuddy 从创建的类创建类

    我有一个interface使用一些方法 数量未知 我想创建另一个interface与方法 它们将具有相同的名称和参数类型 但不具有返回类型 然后 我想使用第二个创建的interface用于创建一个新的class by byteBuddy 但
  • 在 ListView ItemDataBound 事件处理程序中从 DataSource 访问完整的 DataRow

    在 ListView ItemDataBound 事件处理程序中是否有可能获得对该事件的完整 DataRow 的访问权限 我需要在绑定时对整个行进行大量处理 但使用数据行中的数据项值 而我实际上并未在显示本身中使用这些值 Try this
  • 如何防止点击 时页面刷新

    我试图在用户单击时阻止页面刷新
  • Jquery 加载在 Firefox 中不起作用

    我正在开发的网站上的脚本有问题 它在 Safari Opera 和 Chrome 中工作正常 但在 Firefox 中不起作用 当您单击链接时 我尝试将 div contain 从内部链接加载到覆盖 div 然后该 div 就会取消隐藏 所
  • jQuery UI - 使用位置 API 定位隐藏的 div 位置不正确

    我正在尝试使用 jquery UI 定位 divposition http jqueryui com position API changer关系到 demo 在下面的 HTML 中 http jsfiddle net jttdk 1 ht
  • 我什么时候应该考虑制作仅包含头文件的库?

    显然 模板库只需要标头 但对于非模板 什么时候应该将其设置为仅标头 如果您认为您的非模板库可能只是标头 请考虑将其分成两个文件 然后提供第三个文件 其中包含 h和 cpp 带有包含守卫 然后 任何在许多不同的 TU 中使用您的库并怀疑这可能
  • 如何导出 AAR 及其依赖项?

    我有一个 Android Studio 库项目 它使用library aar and library jar 当我将其导出为mylib aar并使用这个新的AAR到不同的应用程序 项目中 它找不到定义在library aar and lib
  • 如何将 XCode 变量传递到资源文件夹中的 HTML 文件?

    我有一个 UIWebView 它从资源文件夹加载本地 HTML 文件 现在 这个 HTML 文件中包含了 Javascript 我的问题是 有没有办法将 XCode 变量传递给加载到 UIWebView 内的 HTML 文件 我可以将其传递
  • 如何禁用通过 IIS 提供的单页应用程序 HTML 文件的缓存?

    我有一个通过 IIS 提供服务的单页面应用程序 Angular js 如何防止 HTML 文件缓存 该解决方案需要通过更改index html 或web config 中的内容来实现 因为无法通过管理控制台访问IIS 我目前正在研究的一些选
  • 如何使用 Elastica Search 和 Symfony2 执行嵌套查询

    我有一个食谱实体 其中有一些标签 多对多映射 我想按标签搜索食谱 这是我的食谱实体 ORM Entity ORM Table name recipes ORM HasLifecycleCallbacks ExclusionPolicy al
  • 具有多个文件扩展名的查找命令

    我正在查看许多子目录 找到所有以 JPG jpg 和 png 结尾的文件 并将它们复制到一个单独的目录中 但是现在只找到 JPG 有人可以解释我做错了什么吗 find root TEST Images name png o name jpg
  • Swift IOS,如何将应用程序用户输入的句子的字母大写,示例;第四个字母和第六个字母?

    用户在文本字段中输入一个句子 然后在一个文本字段中输入数字 4 在另一个文本字段中输入数字 6 它将第 4 个字母和第 6 个字母所在的句子大写 例如 用户输入 一年有 12 个月 输出将是 一年有 12 个月 如何将句子中的第四个和第六个