#flutter #dart #hex #decode
Вопрос:
Мне нужна небольшая помощь с функцией в dart/flutter, которую я пытаюсь написать.
Существует множество строк в шестнадцатеричном коде, разделенных запятой и соединенных вместе в одну String
.
Например: String input = 'HexEncodedStr1,HexEncodedStr2,HexEncodedStr3'
Мне нужно расшифровать каждую из этих строк и вывести их в той же форме, разделенной запятыми:
String output = 'HexDecodedStr1,HexDecodedStr2,HexDecodedStr3'
В настоящее время я использую hex.dart
пакет в качестве декодера строк, но я изо всех сил пытаюсь отделить каждую закодированную строку, прежде чем декодировать ее с помощью hex.dart
:
import 'package:hex/hex.dart';
//The decode function
String decode(hexString) {
if (hexString != "") {
hexString = HEX.decode(hexString);
return hexString;
} else {
return "N/A";
}
}
void main() {
String test = decode('776f726c64,706c616e65740d0a');
print(test); //world,planet
}
Ответ №1:
Как насчет разделения строки и последующего соединения декодированных частей?
void main() {
final decoded = '776f726c64,706c616e65740d0a'
.split(',')
.map(decode)
.join(',');
print(decoded); //world,planet
}
Ответ №2:
Вы можете использовать string.split(«,»);
https://api.flutter.dev/flutter/dart-core/String/split.html
String input = 'HexEncodedStr1,HexEncodedStr2,HexEncodedStr3'
var inputSplit = input.split(",");
Теперь у вас есть список подстрок. Я думаю, что тогда вы можете использовать цикл for или foreach.
inputSplit.forEach((element) => print(decode(element);));
или:
for(var i = 0; i < inputSplit.length; i )
{
var oneHex = decode(inputSplit[i]);
print(oneHex);
}