Разделите и переверните строку, и сохраните цифры, буквы, специальные символы … вместе

#string #flutter #dart #reverse

#строка #flutter #dart #перевернуть

Вопрос:

Я хочу разделить и перевернуть арабскую строку и сохранить цифры, буквы, специальные символы.. вместе (делая вид, что все арабские буквы изолированы).

Пример моего кода :

 void main() {
  var sentence = ' Suit إجمالى المنتجات 359.00 Dhs ,مشاركة';
  var originalList = sentence.split('').toList();
  print(originalList.reversed.toList().join());
}
  

И вот результат этого кода:

 ةكراشم, shD 00.953 تاجتنملا ىلامجإ tiuS stropS dlihC
  

Арабские буквы хороши, но я хочу избежать изменения любого символа, кроме списка арабских букв.

здесь:

 List<String> arabicLetters = [
  'ا',
  'ب',
  'ت',
  'ث',
  'ج',
  'ح',
  'خ',
  'د',
  'ذ',
  'ر',
  'ز',
  'س',
  'ش',
  'ص',
  'ض',
  'ط',
  'ظ',
  'ع',
  'غ',
  'ف',
  'ق',
  'ك',
  'ل',
  'م',
  'ن',
  'ه',
  'و',
  'ي',
  'أ',
  'إ',
  'ؤ',
  'ئ',
  'آ',
  'ى',
  'ة',
];
  

Комментарии:

1. это меняет числа на противоположные, вам нужно изменить регулярное выражение: String reverse(String s) { if (s.isEmpty) { return ''; } return s.toList().reversed.reduce((value, element) => value = element); } var replaceSet = RegExp('[0|1|2|3|4|5|6|7|8|9|0] '); var foo = 'Ut occaecat 1235 culpa 3479 incididunt 2478 culpa.'; var replaced = foo.splitMapJoin(replaceSet, onMatch: (m) => reverse(m.group(0))); print(foo); print(replaced);

2. ошибка: метод ‘ToList’ не определен для типа String . как это можно исправить?

3. ах, у меня было некоторое расширение, вам нужно реализовать reverse функцию, как вы тогда делали в своем вопросе, используя split('')

4. Я имею return s.split('').toList() ... в виду и т. Д

5. Большое вам спасибо, теперь я на правильном пути, могу ли я как-нибудь указать на свои арабские буквы внутри регулярного выражения? на самом деле у меня есть два списка, на которые я хочу указать, вместо того, чтобы нажимать на все элементы