如何在字符串中的特定位置添加空格

时间:2019-11-02 04:45:23

标签: flutter dart

如何在字母后设置空格

示例:

String abc = 05:12AM;

String abc = 5:12PM;

String abc = 12:12AM;

String abc = 1:12PM;

我想要这个结果: 05:12 AM

我尝试过这种方式,但是没有用。

String a = abc.replaceAll(RegExp('[a-zA-Z]'), '');

3 个答案:

答案 0 :(得分:1)

看起来您只想向右移动2个字符并增加空格。首先,您需要使用subString获取最后两个字符,然后使用subString删除最后两个字符。然后使用+添加空格。代码:

String abc = '05:12AM';
String lastTwo = abc.substring(abc.length-2,abc.length);
String removedLastTwo = abc.substring(0,abc.length-2);
String a = removedLastTwo + ' ' + lastTwo;

print('lastTwo = ' + lastTwo);
print('removedLastTwo = ' + removedLastTwo);
print('a = ' + a);

答案 1 :(得分:1)

  String abc = '1:12PM';
  String a = abc.replaceAllMapped(RegExp('[a-zA-Z]+'), (m) => ' ${m.group(0)}');

或者也许这样,以确保您要分割数字和字符:

  String a = abc.replaceAllMapped(RegExp('(\\d)([a-zA-Z]+)'), (m) => '${m.group(1)} ${m.group(2)}');

还有 replaceFirstMapped 方法

答案 2 :(得分:0)

如果要使用某些日期格式创建这些字符串的值,则可能需要在格式化这些字符串时添加空格。例如,使用intl包,您可以这样做:

String abc = DateFormat('HH:mm a').format(DateTime.now()); // 05:12 AM

如果您无法控制这些字符串的创建,并且可以确定总是在最后收到AM或PM,则可以执行以下操作:

String a = '${abc.substring(0, abc.length - 2)} ${abc.substring(abc.length - 2)}';

String a = '${abc.replaceRange(abc.length-2, abc.length-2, ' ')}';

如果这些字符串可能没有AM或PM,则可以执行以下操作:

String a = abc.replaceFirstMapped(RegExp('AM|PM'), (m) => ' ${m.group(0)}');