当前位置: 首页 > 知识库问答 >
问题:

Swift 1.2和Swift 2.0中的字符串长度[副本]

米飞龙
2023-03-14

在以前版本的Swift中,我有以下代码。

func myfunc(mystr: String) {
    if mystr.utf16Count >= 3 {

在Swift1.2的最新版本中,我现在得到以下错误。

'utf16Count' is unavailable: Take the count of a UTF-16 view instead, i.e. count(str.utf16)

因此我更改代码如下:

func myfunc(mystr: String) {
    if count(mystr.utf16) >= 3 {
'(String.UTF16View) -> _' is not identical to 'Int16'

用Swift1.2得到字符串长度的正确方法是什么?

共有1个答案

艾弘义
2023-03-14

您可以对其使用扩展名,如:

extension String {
     var length: Int { return count(self)         }  // Swift 1.2
}

您可以使用它:

if mystr.length >= 3 {

}

或者你可以直接这样数:

if count(mystr) >= 3{

}
if count(mystr.utf16) >= 3 {

}
extension String {
    var length: Int {
        return characters.count
    }
}
let str = "Hello, World"
str.length  //12
extension String {
    var length: Int {
        return (self as NSString).length
    }
}
let str = "Hello, World"
str.length //12
let str: String = "Hello, World"
print(str.characters.count) // 12

let str1: String = "Hello, World"
print(str1.endIndex) // 12

let str2 = "Hello, World"
NSString(string: str2).length  //12
 类似资料:
  • 如何获得存储在变量中的字符串长度并将其分配给另一个变量? 如何将另一个变量设置为输出?

  • 问题内容: 与使用循环相比,在Python中是否有一种更惯用的方式来计算字符串长度? 我试过了,但只适用于整数: 问题答案: 我知道这是一个老问题,但是我不禁注意到Python错误消息 告诉 您如何执行此操作: 所以:

  • 问题内容: 不幸的是,Jinja不支持执行任意Python代码,例如 我当前的解决方法是使用不建议使用的,丑陋的,双下划线的方法: 尽管这可行,但恐怕将来某些字符串实现可能会破坏此代码。有一个更好的方法吗? 问题答案: 你可以使用length过滤器:

  • 要求出字符串的长度(字符的个数),我们可以使用length函数。调用这个函数的语法和我们前面看到的有点不同: int length; length = fruit.length(); 对于这种函数调用,我们称之为在字符串变量fruit上**调用(invoke)**length函数。“调用(invoke)”这个词可能看起来有点奇怪,但是后面我们还会遇到很多在对象上调用函数的例子。 函数调用的语法称

  • 问题内容: 在以前的Swift版本中,我有以下代码。 在最新版本的Swift 1.2中,我现在收到以下错误。 所以我将代码更改如下: 但这是行不通的。我现在收到以下错误消息。 使用Swift 1.2获取字符串长度的正确方法是什么? 问题答案: 您可以使用扩展名,例如: 您可以使用它: 或者,您可以直接通过这种方式进行计数: 这也为我工作: 对于 Swift 2.0: 另一个扩展: 如果要直接使用:

  • 问题内容: 我在SQL数据库中有一个字符串,表示一个URL。有些网址很短,有些很长。我真的不知道这是我可能遇到的最长的URL,所以为了安全起见,我会采用较大的值,例如256或512。 当我定义最大字符串长度时(例如,使用SQLAlchemy): 即使实际的字符串较短,这是否也会占用每一行的空间(存储空间)? 我假设这与实现细节有关。我正在使用postgreSQL,但对sqlite和mysql也很感