如何在字母后设置空格
示例:
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]'), '');
答案 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)}');