Чтобы преобразовать строку Dart в шестнадцатеричное представление, вы можете использовать несколько методов. Вот несколько подходов:
Метод 1: использование свойства codeUnitsи метода toRadixString.
String stringToHex(String input) {
return input.codeUnits.map((unit) => unit.toRadixString(16)).join();
}
void main() {
String input = "Hello, world!";
String hexString = stringToHex(input);
print(hexString); // Output: 48656c6c6f2c20776f726c6421
}
Метод 2: использование функции Hex.encodeиз пакета convert.
import 'package:convert/convert.dart';
String stringToHex(String input) {
List<int> bytes = input.codeUnits;
return hex.encode(bytes);
}
void main() {
String input = "Hello, world!";
String hexString = stringToHex(input);
print(hexString); // Output: 48656c6c6f2c20776f726c6421
}
Метод 3. Реализация пользовательской функции преобразования с использованием побитовых операций.
String stringToHex(String input) {
StringBuffer buffer = StringBuffer();
for (int i = 0; i < input.length; i++) {
buffer.write(input.codeUnitAt(i).toRadixString(16).padLeft(2, '0'));
}
return buffer.toString();
}
void main() {
String input = "Hello, world!";
String hexString = stringToHex(input);
print(hexString); // Output: 48656c6c6f2c20776f726c6421
}
Эти методы преобразуют строку Dart в соответствующее ей шестнадцатеричное представление. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям.