获取直到特定字符的字符串

2024-01-21

var hello = "hello, how are you?"

var hello2 = "hello, how are you @tom?"

我想删除@符号后面的每个字母。

结果应该是

var hello2 = "hello, how are you @tom?"
->
hello2.trimmed() 

print(hello2.trimmed())

-> "hello, how are you"

Update由于我想使用它来链接多个用户并用正确的名称替换@sign后面的空格,因此我总是需要引用最新出现的@sign来替换它。

text3 = "hey i love you @Tom @Marcus @Peter"

最终版本应该是什么样子的示例

开始

var text =“你好@tom@mark@mathias”

我想始终获得文本中最新@符号的索引


扩展 @appzYourLife 答案,以下内容还将在删除 @ 符号后面的所有内容后修剪空白字符。

import Foundation

var str = "hello, how are you @tom"

if str.contains("@") {
    let endIndex = str.range(of: "@")!.lowerBound
    str = str.substring(to: endIndex).trimmingCharacters(in: .whitespacesAndNewlines)
}
print(str) // Output - "hello, how are you"

UPDATE:

为了响应找到最后一次出现的@字符串中的符号并删除它,这是我的处理方法:

var str = "hello, how are you @tom @tim?"
if str.contains("@") {
    //Reverse the string
    var reversedStr = String(str.characters.reversed())
    //Find the first (last) occurance of @
    let endIndex = reversedStr.range(of: "@")!.upperBound
    //Get the string up to and after the @ symbol
    let newStr = reversedStr.substring(from: endIndex).trimmingCharacters(in: .whitespacesAndNewlines)

    //Store the new string over the original
    str = String(newStr.characters.reversed())
    //str = "hello, how are you @tom"
}

或者查看@appzYourLife 答案使用range(of:options:range:locale:)而不是字面上颠倒字符

var str = "hello, how are you @tom @tim?"
if str.contains("@") {
    //Find the last occurrence of @
    let endIndex = str.range(of: "@", options: .backwards, range: nil, locale: nil)!.lowerBound
    //Get the string up to and after the @ symbol
    let newStr = str.substring(from: endIndex).trimmingCharacters(in: .whitespacesAndNewlines)

    //Store the new string over the original
    str = newStr
    //str = "hello, how are you @tom"
}

作为额外的好处,以下是我将如何删除所有@从最后一个开始并继续努力:

var str = "hello, how are you @tom and @tim?"
if str.contains("@") {

    while str.contains("@") {
        //Reverse the string
        var reversedStr = String(str.characters.reversed())
        //Find the first (last) occurance of @
        let endIndex = reversedStr.range(of: "@")!.upperBound
        //Get the string up to and after the @ symbol
        let newStr = reversedStr.substring(from: endIndex).trimmingCharacters(in: .whitespacesAndNewlines)

        //Store the new string over the original
        str = String(newStr.characters.reversed())
    }
    //after while loop, str = "hello, how are you"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取直到特定字符的字符串 的相关文章

  • 使用 Swift 在 Sprite Kit 中构建棋盘游戏? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在使用 Swift 的 Sprite Kit 中 我试图构建一个国际象棋棋盘 实际上是一个类似国际象棋的棋盘 平铺网格 那么一般来说
  • “不能在集合中使用 in/contains 运算符”

    单击搜索栏时出现此错误 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 无法在集合中使用 in contains 运算符 Assignment 4 SearchResult studentID
  • Xcode 11 - 在 Catalyst Swift 中禁用调整大小模式

    We are 将我们基于 Swift 的 iOS 应用程序转换为 Mac兼容使用Catalyst在 Xcode 11 中 当用户使用时 我们在 UI 中面临一个问题resize应用程序窗口 那么我们可以禁用调整大小模式并为应用程序窗口提供修
  • 重新组织链式可观察量

    我有一大块链接的 Rx 可观察量 当通过选择表视图行时会触发这些可观察量table rx modelSelected 我希望能够打破这个逻辑 因为我目前必须在flatMapLatest 因为这是流程的 第一步 感觉不对 我必须在后续执行更多
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • 如何删除以前的 ViewController

    我是一名学生 对编程还很陌生 我正在尝试在业余时间学习 Objective C Swift 我使用 spriteKit 和 swift 制作了一个游戏 有多个菜单 场景 我正在尝试从一个视图控制器转换到另一个视图控制器 为此 我使用了以下代
  • 实例化 UISegementedControl 的子类时,对类使用未实现的初始化程序“init(frame:)”

    当我尝试使用以下实例时 出现以下错误MySegmentControl在下面的代码中 该错误发生在应用程序启动后 知道我错过了什么吗 致命错误 对类 TestingSubclassing MySegmentControl 使用未实现的初始化程
  • 删除 Swift 中字符串开头的所有换行符

    我有一个像这样的字符串 BLA Blub 现在我想删除所有前导换行符 但仅限于第一个 真实单词 出现之前的那些 这怎么可能 Thanks 如果可以接受从中删除换行符 和其他空白 字符两端然后你可以使用字符串 let string n nBL
  • Java字符串乘法[重复]

    这个问题在这里已经有答案了 可能的重复 我可以在java中将字符串相乘以重复序列吗 https stackoverflow com questions 2255500 can i multiply strings in java to re
  • 在 MLMediaLibrary 中加载媒体源时出错

    我在加载时遇到错误mediaSourcesMac OS X 中的属性 我正在尝试使用以下方法获取 Apple Photos 源MLMediaLibrary class 我的应用程序是沙盒的 并且具有图片文件夹的只读权限 我收到错误 MLMe
  • 在 Swift 中使用 CIColorMatrix 过滤器

    以下 Swift 函数应该使用指定的 tintColor 对灰度图像 greyImage 进行着色 import UIKit func colorizeImage greyImage UIImage tintColor UIColor gt
  • 带有预填充 .sqlite 的核心数据 (Swift3)

    目前 我正在对现有 iOS9 应用程序进行 Swift3 iOS10 更新 该应用程序存储了欧洲各地约 10 000 个电动汽车充电点 到目前为止 我总是为应用程序提供预填充的数据库 xcappdata 包中的 sqlite sqlite
  • Cython 函数中的字符串

    我想这样做将字符串传递给 Cython 代码 test py s Bonjour myfunc s test pyx def myfunc char mystr cdef int i for i in range len mystr err
  • 电影播放完毕后关闭 AVPlayer

    我正在制作一个简单的 iPad 应用程序 按下按钮即可播放电影 电影播放 电影结束后我想关闭 AVPlayerView 以便它返回主屏幕 目前 当视频结束时 它停留在最后一帧 我现在的 ViewController Swift import
  • 从 firebase swift 读取数据

    我正在尝试从 firebase 数据库检索数据 但是当我运行代码时 它没有显示任何内容 但没有显示错误 我从Firebase手册中得到了这段代码 顺便说一句 我很确定路径是正确的 let ref FIRDatabase database r
  • 快速不平衡调用开始/结束外观转换

    这已经困扰我一段时间了 我有一个UISplitViewController里面一个UITabBarController 主视图是一个TableView 当我单击一个单元格时 我会弹出一个非常基本的视图控制器 其中只有一个UIButton居中
  • 用于匹配重复子字符串的单个js正则表达式?

    假设我有一个字符串 例如 where is mummy where is daddy 我想用空字符串替换任何一组重复子字符串 所以在这种情况下where and is元素将被删除 结果字符串将是 mummy daddy 我想知道是否有任何单
  • iOS 图表错误:Thread1:EXC_BAD_ACCESS(代码=2,地址=0x2a0c220)

    因此 我正在遵循 AppCoda 上的 iOS Charts 教程 我完美地遵循了它 然后当我遇到问题时 我还复制了代码以使其完全匹配 问题是 当我尝试创建饼图然后运行它时 我收到错误 线程1 EXC BAD ACCESS 代码 2 地址
  • Java .split("|") 不工作

    我刚刚遇到了一个问题分割法 http docs oracle com javase 6 docs api java lang String html split 28java lang String 29for 字符串不适用于字符 作为一个
  • 如何在 LLVM 中实现字符串数据类型?

    我一直在看LLVM http llvm org 最近 我发现它是一个非常有趣的架构 然而 浏览教程和参考材料 我看不到任何关于如何实现的示例string http en wikipedia org wiki String computer

随机推荐

  • 角度材质 未显示在自定义组件中

    所以我做了很多研究 但我就是无法弄清楚 我想使用 Angular 材质表单控件制作一个文本框组件 按照此tutorial https material angular io guide creating a custom form fiel
  • FluentMigrator迁移成功,但数据库没有变化

    我一定错过了一些非常基本的东西 我正在开发一个遗留项目 并且我正在尝试将 FluentMigrator 加入其中 因为我有一些有趣的数据库 我认为即将发生的变化和数据迁移将会产生很大的影响 使用此工具更容易 对于初始迁移 我只想将数据库提升
  • Hibernate @Table 注解中的动态模式

    想象一下 您在两个环境中有四个 MySQL 数据库模式 foo 产品数据库 bar 正在进行的重组foo db foo beta 测试数据库 and bar beta 新结构的测试数据库 此外 假设您有一个 Spring Boot 应用程序
  • jqgrid rowattr 不应用类

    我想根据列的值将背景颜色应用于 jqGrid 行的行 但是基本 rowattr 并未将类应用于行 下面是代码 为了简单起见 我删除了需要应用颜色的条件 jQuery employeeSalarysGrid jqGrid height 250
  • Azure 托管代理 - Visual Studio 2017

    我在 Azure 中设置了托管代理来执行 CI 构建 但在构建失败之前的 Visual Studio 构建步骤中收到以下警告 找不到 Visual Studio 版本 15 0 正在寻找最新版本 查看托管代理的文档 它们似乎没有使用 Vis
  • Matplotlib 图例中的字幕

    我正在使用 matplotlib 进行一些绘图 并且有一个图例告诉查看者这些点是用哪些传感器记录的 有多种类型的多个传感器 我希望在图例中添加字幕来告诉观众每组传感器的类型 我有一个可行的解决方案 但它有点像黑客 如下所示 创建图例时 它接
  • has_many 和belongs_to 关联的单选按钮

    我有一个 has many 和 Belongs to 关联 class Link lt ActiveRecord Base has and belongs to many categories belongs to property end
  • 如何在流程中获取函数的返回类型?

    以此为例 const myObj test true type MyType typeof myObj const getValue MyType gt return myObj how to do this type TheReturnT
  • 使用 API 以编程方式在 Azure DevOps Pipeline 中添加和更新测试

    我正在将我们的一个项目转换为使用 Azure DevOps 而不是 AppVeyor 进行 CI 作为构建的一部分 我们使用自定义测试运行器来执行某些测试 在 AppVeyor 中运行时 我们直接从测试运行程序调用 REST API 以通知
  • BroadcastReceiver 尝试在无序广播期间返回结果 - SMS Receiver

    我知道有很多这样的帖子 但没有一个对我有帮助 我的清单声明
  • java中的速率控制

    我正在寻找一个好的解决方案或者可能是一个 API 来解决以下问题 我的应用程序循环执行一项任务 例如发送电子邮件等 我需要将消息的平均速率限制为例如每秒 100 条消息或每最后一分钟 1000 条消息 不 我正在寻找一种算法或 API 来完
  • 如何在 Ansible 中更改和使用每个主机的全局变量?

    我正在尝试编写一个剧本来设置具有多个从服务器的 mysql 主从复制 对于每个从属服务器 我需要访问一个名为 next id 的变量 该变量应该在用于每个主机之前递增 例如 对于第一个从服务器 next id 应为 2 对于第二个从服务器
  • 批量http请求

    有谁知道批量http请求的标准方法 含义 在一次往返中发送多个 http 原子请求 出于性能原因 我们在 REST API 实现中需要这样的机制 这种机制可以显着减少客户端使用 API 所需执行的往返次数 提前致谢 Shay 定义包含客户端
  • 这个图案的名字? (答案:带有双重检查锁定的延迟初始化)

    考虑以下代码 public class Foo private static object lock new object public void NameDoesNotMatter if SomeDataDoesNotExist lock
  • 为什么这个全局变量没有被改变?

    为什么会出现 null 而不是设置为 ajax 调用返回的数据 我忽略的一定是一些简单的事情 var message document ready function fbFetchMessage alert message function
  • 如何从基于 Django 的站点管理任务的停止或重新启动?

    我将在服务器中运行一个脚本 该脚本将自动在数据库中创建模型实例 这个想法是使用无限循环 例如 while True 它将无休止地创建实例 直到我以某种方式停止它 我想使用 Django 从我的网站上很好地检查我的数据库有多大 然后我想停止或
  • DIV 重叠粘性页脚

    我有一个包含其他三个 div 的 div 页眉 内容 页脚 div class note div class header Title div div class content Some content div div class foo
  • fread (data.table) 选择列,如果未找到列则抛出错误

    我正在使用 data tables 将 csv 文件加载到 R 中fread功能 它有一堆我不需要的列 所以select参数就派上用场了 但是 我注意到 如果 csv 文件中不存在 select 中指定的列之一 则 fread 将默默地继续
  • 重新运行时将 Unicode 参数传递给 Windows .bat 文件

    我的 bat 文件如下所示 echo off CD D dp0 if 2 set user USERNAME else set user 2 getFile if 1 set p file Enter file name else set
  • 获取直到特定字符的字符串

    var hello hello how are you var hello2 hello how are you tom 我想删除 符号后面的每个字母 结果应该是 var hello2 hello how are you tom gt he