Подтвердить что ты не робот

Как преобразовать строку в байт в Swift?

Как преобразовать строку в байт в Swift? Как String .getBytes() в Java.

4b9b3361

Ответ 1

Вы можете выполнить итерацию через кодовые точки UTF8 и создать массив:

var str = "hello, world"
var byteArray = [Byte]()
for char in str.utf8{
    byteArray += [char]
}
println(byteArray)

Ответ 2

Существует более элегантный способ.

Swift 3:

let str = "Hello"
let buf = [UInt8](str.utf8)

Swift 4: (благодаря @PJ_Finnegan)

let str = "Hello"
let buf: [UInt8] = Array(str.utf8)

Ответ 3

Другой вариант, когда вам нужно перейти к функциям C-библиотеки:

let str = hexColour.cStringUsingEncoding(NSUTF8StringEncoding)
let x = strtol(str!, nil, 16)

Ответ 5

String.withCString - это сверстник в Java String.getBytes(void). Используйте его так (добавление дополнительных сообщений):

let s = "42"
s.withCString {
  ( bytes : (UnsafePointer<CChar>) ) -> Void in
  let k = atoi(bytes)
  println("k is \(k)")
}

Ответ 6

изменить/обновить: Xcode 7.2.1 • Swift 2.1.1

extension String {
    var utf8Array: [UInt8] {
        return Array(utf8)
    }
}

"12345678".utf8Array   // [49, 50, 51, 52, 53, 54, 55, 56]