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

В соответствии с вашим примером вам нужно отсортировать по двум полям (фамилия, имя), а не по одному. Вы можете использовать библиотеку Alasql , чтобы сделать этот вид в одной строке:

var res = alasql('SELECT * FROM ? ORDER BY last_nom, first_nom',[objs]);

Попробуйте этот пример в jsFiddle .

29
задан h22 14 March 2017 в 10:10
поделиться

7 ответов

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

var str = "hello, world"
var byteArray = [Byte]()
for char in str.utf8{
    byteArray += [char]
}
println(byteArray)
13
ответ дан Connor 14 March 2017 в 10:10
поделиться

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

Swift 3:

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

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

let str = "Hello"
let buf: [UInt8] = Array(str.utf8)
92
ответ дан derpoliuk 14 March 2017 в 10:10
поделиться

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

let s = "42"
s.withCString {
  ( bytes : (UnsafePointer<CChar>) ) -> Void in
  let k = atoi(bytes)
  println("k is \(k)")
}
2
ответ дан hnh 14 March 2017 в 10:10
поделиться

Редактировать / обновить: 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]
2
ответ дан Leo Dabus 14 March 2017 в 10:10
поделиться

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

let str = hexColour.cStringUsingEncoding(NSUTF8StringEncoding)
let x = strtol(str!, nil, 16)
2
ответ дан Chris 14 March 2017 в 10:10
поделиться

string.utf8 или string.utf16 должны делать то, что вы просите. См. Здесь для получения дополнительной информации: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html .

1
ответ дан carloabelli 14 March 2017 в 10:10
поделиться

Swift 4.1.

Это зависит от того, чего вы хотите достичь. Для этого же вопроса я использовал ...

let message = "Happy"
for v in message.utf8 {
    print(v)
}

Затем я выполнил необходимые операции над отдельным байтом. Вывод:

//72
//97
//112
//112
//121

https://developer.apple.com/documentation/swift/string.utf8view

0
ответ дан rustyMagnet 14 March 2017 в 10:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: