- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在字符串上使用 componentsSeparatedByString
将一个长字符串拆分为一个字符串数组,使用逗号 (,) 作为要拆分的字符串。问题是,一个组成部分是逗号字符。例如,字符串是“a,b,c,,,1,2,3”。调用 componentsSeparatedByString
后数组是 ["a", "b", "c", "", "", "1", "2", "3"] 但我需要它是[“a”、“b”、“c”、“、”、“1”、“2”、“3”]。幸运的是我可以修改字符串,但我真的不想将所有逗号更改为不同的字符。有没有一种方法可以“转义”我需要的逗号作为组件,这样 componentsSeparatedByString
就不会在中间那个逗号上拆分?
我尝试用 \u{002C}
替换它,但它比那更聪明。仍然将其解释为逗号,因此它会拆分。
最佳答案
如果您使用标准库中的 split
方法而不是 componentsSeparatedByString
来执行此操作,您可以使用有状态闭包以一种相当 hacky 的方式执行此操作,方法是记住是否最后一个元素是一个逗号,然后没有分成两行:
let s = "a,b,c,,,1,2,3"
var lastWasComma = false
let array = split(s.characters) { (c: Character)->Bool in
if c == "," {
lastWasComma = !lastWasComma
}
else {
lastWasComma = false
}
return lastWasComma
}.map(String.init)
debugPrint(array)
// prints ["a", "b", "c", ",", "1", "2", "3"]
(这是针对 2.0 的 - 如果您使用的是 1.2,请从末尾删除 .characters
和 map
,因为字符串在 2.0 之前可以直接切片)
关于string - componentsSeparatedByString - 获取作为拆分字符串的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31224210/
我有一个字符串,我需要将其分成一个单词数组。我使用的是 NSArray *words = [cleanText componentsSeparatedByString:@""]; 效果很好,直到我遇到
在我的一个应用程序中有一个时间字符串,我需要将其中的每个部分分开并进行处理。 我的字符串是这样的 9:00 AM – 11:00 PM 或 9:00 AM – 11:00 PM,9:00 AM – 1
我用这段代码来切割字符串 NSString *titleString = @"22.225453615805794,113.554006577014889"; NSArray *arr
我在字符串上使用 componentsSeparatedByString 将一个长字符串拆分为一个字符串数组,使用逗号 (,) 作为要拆分的字符串。问题是,一个组成部分是逗号字符。例如,字符串是“a,
我正在为一个应用程序使用 MapKit。 我正在将信息存储在全局字典中,然后再次访问它们。 每个都使用文本+用户名+日期的键存储。此实例中的用户名变量包含字符串的日期和用户名 func mapView
我有一个存储在实体(核心数据)中的字符串,我想使用 NSFetchedResultsController 来获取数据。 字符串格式:abc,ba,x,s,d。这是一个保存为字符串的 ID 数组。 我只
我想使用 -componentsSeparatedByString: 解析以下字符串: CHAPTER 5. RULE OF DECISION CHAPTER 6. GOVERNMENTA
我知道这是菜鸟问题,我真的在问之前四处搜索。但是我想知道的内容没有确切的答案。我们如何在不使用 Objective C 的情况下将字符串拆分为数组?例如: var str = "Today is so
我正在解析一个 xml,其中包含需要在屏幕上显示的字符串。这是执行此操作的代码。 [gTutorialTextList addObject:[attributeDict objectForKey:@"
我有一个像这样的 NSString: music that rocks.mp3 e99a65fb 问题在于文件名 (musicthatrocks.mp3) 和 CRC32 校验和 (e99a65fb)
在 urlContentArray[1].componentsSeparatedByString("") 中 我想用一系列数字替换“1”。 当我写 urlContentArray[1..") 我收到此
我昨晚在访问通过 componentsSeparatedByStringMethod 创建的数组的元素时遇到了一些麻烦。我的目标是从 url 内容变量中提取一些信息。 var arr = urlCon
如何使用 Split( ) 方法而不是 componentsSeparatedByString( ) 方法获得相同的结果: public func className(obj: Any) -> Str
需要在 & 上分隔字符串,但在 & 上不需要。 有没有更优雅的方式来编码它而不是先替换它然后在 & 上分离它?像这样... query = [query stringByReplacingOccurr
所以这里是字符串s: "Hi! How are you? I'm fine. It is 6 p.m. Thank you! That's it." 我希望将它们分隔成一个数组: ["Hi", "Ho
我有一个字符串需要拆分。使用 componentsSeparatedByString 会很容易,但我的问题是分隔符是逗号,但我可以使用不是分隔符的逗号。 我解释一下: 我的字符串: NSString
我需要根据 ASCII 控制字符(特别是 US — 0x1F)分隔字符串。 当 NSString ComponentsSeparatedByString 需要 unicode 字符串并且我提供 ASC
长话短说,我正在尝试将输入字符串解析为“ token ”...... 我可以完全控制 token 的放置位置,我可以使用 NSLog 并查看我的输入字符串的格式是否完全正确(甚至直到尝试 token
我想将 NSDictionary 数组存储到一个文件中。所以我写了一个函数来将 NSArray 转换为 NSString。但是我遇到了一个非常奇怪的问题。这是我的代码。 + (NSArray *)ar
我通过 componentsSeparatedByString 将字符串转换为数组。它返回数组完美。但是当字符串为空时返回 1 个对象。 为什么会这样? NSMutableArray *imagesL
我是一名优秀的程序员,十分优秀!