Вы не можете сделать это без изменения локали, потому что GROUP_SEP является окончательным.
Однако, если вы не возражаете против изменения локали, что вы можете сделать в любом конкретном случае, например, с помощью new NumberFormat('###,000', 'fr')
, тогда выберите любую локаль (например, французский), которая использует non-breaking space
в качестве GROUP_SEP. Конечно, в результате вы получите ,
в качестве десятичного разделителя, но если вы его никогда не используете, то это спорный вопрос. Это работает для примера в вопросе, но не обобщает.
Можно (хотя и хрупко) определить свой собственный язык. Так что если вы являетесь англоговорящим австралийцем, который предпочитает non-breaking space
в качестве разделителя группы, то определите свой собственный язык (например, zz
)
import 'package:intl/intl.dart';
import 'package:intl/number_symbols_data.dart';
import 'package:intl/number_symbols.dart';
main() {
numberFormatSymbols['zz'] = new NumberSymbols(
NAME: "zz",
DECIMAL_SEP: '.',
GROUP_SEP: '\u00A0',
PERCENT: '%',
ZERO_DIGIT: '0',
PLUS_SIGN: '+',
MINUS_SIGN: '-',
EXP_SYMBOL: 'e',
PERMILL: '\u2030',
INFINITY: '\u221E',
NAN: 'NaN',
DECIMAL_PATTERN: '#,##0.###',
SCIENTIFIC_PATTERN: '#E0',
PERCENT_PATTERN: '#,##0%',
CURRENCY_PATTERN: '\u00A4#,##0.00',
DEF_CURRENCY_CODE: 'AUD',
);
print(new NumberFormat('###,000', 'zz').format(110700));
}