как заменить несколько пробелов одним пробелом в Dart и Flutter

#dart

Вопрос:

Я принимаю значения из текстового поля и хочу удалить несколько пробелов из этих значений и заменить их одним как я могу добиться этого в dart до сих пор я пробовал,

 ' '.join(mystring.split())
 

но это, похоже, не работает так, как в python, он вызывает соединение, которое не может быть выполнено со строкой в dart, Так как я могу это сделать в dart…

Ответ №1:

Самым маленьким и простым решением было бы:

 final _whitespaceRE = RegExp(r"s ");
String cleanupWhitespace(String input) =>
    input.replaceAll(_whitespaceRE, " ");
 

Вы также можете использовать split / join :

 String cleanupWhitespace(String input) =>
    input.split(_whitespaceRE).join(" ");
 

Это, вероятно, немного менее эффективно, но если вы не делаете это все время, это не имеет значения.

Если производительность действительно важна, и вы не хотите заменять одно пространство другим, то вы можете изменить регулярное выражение на:

 final whitespaceRE = RegExp(r"(?! )s | s ");
 

Очень маловероятно, что это имеет значение только для обработки пользовательского ввода.

Ответ №2:

Что-то вроде:

 final newstring = yourstring.replaceAllMapped(RegExp(r'bs b'), (match) {
  return '"${match.group(0)}"';
});
 

или

 final newstring = yourstring.replaceAllMapped(new RegExp(r'/s /'), (match) {
  return ' ';
});
 

Ответ №3:

 def clean_words(Complex_words):
    List_words =Complex_words.split()
    New_word = ""
    for i in List_words:
        New_word = New_word   " "  i

    return New_word
 

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

1. это не решение для дротиков. Это Питон.