当前位置: 首页 > 面试题库 >

如何在Swift中将UInt8字节数组转换为字符串

陶法
2023-03-14
问题内容

我在将UInt8Byte数组快速转换为字符串时遇到问题。我搜索并找到一个简单的解决方案

String.stringWithBytes(buff, encoding: NSUTF8StringEncoding)

但是显示错误String.type没有成员stringWithBytes。谁能建议我解决方案?

这是我要获取的代码,NSData并将其转换为字节数组,然后我必须将该字节数组转换为字符串。

let count = data.length / sizeof(UInt8)
var array = [UInt8](count: count, repeatedValue: 0)
data.getBytes(&array, length:count * sizeof(UInt8))
String.stringWithBytes(buff, encoding: NSUTF8StringEncoding)

问题答案:

Swift 3 / Xcode 8 更新

来自的字符串bytes: [UInt8]

if let string = String(bytes: bytes, encoding: .utf8) {
    print(string)
} else {
    print("not a valid UTF-8 sequence")
}

来自的字符串data: Data

let data: Data = ...
if let string = String(data: data, encoding: .utf8) {
    print(string)
} else {
    print("not a valid UTF-8 sequence")
}

Swift 2 / Xcode 7 更新

来自的字符串bytes: [UInt8]

if let string = String(bytes: bytes, encoding: NSUTF8StringEncoding) {
    print(string)
} else {
    print("not a valid UTF-8 sequence")
}

来自的字符串data: NSData

let data: NSData = ...
if let str = String(data: data, encoding: NSUTF8StringEncoding) {
    print(str)
} else {
    print("not a valid UTF-8 sequence")
}

先前的答案:

String没有stringWithBytes()方法NSString有一个

 NSString(bytes: , length: , encoding: )

您可以使用的方法,但是您可以直接从创建字符串NSData,而无需UInt8数组:

if let str = NSString(data: data, encoding: NSUTF8StringEncoding) as? String {
    println(str)
} else {
    println("not a valid UTF-8 sequence")
}


 类似资料:
  • 问题内容: 我有以下代码: 如何转换回相同的字节数组? 我问的原因是因为我想通过加密的十六进制字符串与服务器通信,所以我需要将其转换回字节数组以将字符串解码为其原始格式。 问题答案: 您可以将六进制字符串转换回UInt8数组,该数组每两个六个字符重复一次,并使用UInt8基数16初始化程序从中初始化UInt8: 编辑/更新: Xcode 14•Swift 5.1 操场:

  • 问题内容: 使用Swift,我想将字节从uint8_t数组转换为整数。 “ C”示例: 快速尝试: 从Swift中的UInt8数组创建UInt16值的正确语法或代码是什么? 我对NSData版本感兴趣,并且正在寻找不使用临时数组的解决方案。 问题答案: 如果您想通过,它将像这样工作: 或者: 两种变体都假定字节按主机字节顺序排列。 Swift 3(Xcode 8)更新:

  • 问题内容: http://play.golang.org/p/BoZkHC8_uA 我想将uint8转换为字符串,但不知道如何。 这给我 任何想法? 问题答案: 只需将其转换:

  • 我得到一个错误读数:

  • 问题内容: 我知道如何以编程方式执行此操作,但是我敢肯定有一种内置方法… 我使用的每种语言都有一组对象的默认文本表示形式,当您尝试将Array与字符串连接起来或将其传递给print()函数时,它会吐出。Apple的Swift语言是否可以有一种轻松地将数组转换为字符串的内置方法,还是在对数组进行字符串化时始终必须明确? 问题答案: 如果数组包含字符串,则可以使用的方法: 在 Swift 2中 : 如

  • 我使用过的每种语言都有某种默认的文本表示,用于对象集合,当您试图将数组与字符串连接起来,或者将其传递给print()函数等时,它会吐出这些对象集合。苹果的Swift语言是否有一种内置的方式可以轻松地将数组转换为字符串,或者我们在字符串化数组时总是必须显式地表示吗?