想要删除这个字符串末尾的数字,并将其存储到flutter中的新变量中



15 Clarendon Hills Astralis Shiraz 2009我想删除这个字符串末尾的数字(2009(,并将其存储到一个新的变量中。我还想在float中删除这个字符串开头的整数。。所以最终的输出必须是这样的:

*字符串名称=";Clarendon Hills Astralis设拉子">

int year =2009

您可以在这种情况下使用正则表达式。定义方法:

String removeDigits(final String s) {
return s.replaceAll(new RegExp(r"[0-9]+"), "");
}

然后使用它:

final String address = "15 Clarendon Hills Astralis Shiraz  2009";

String name = removDigits(address);

输出:

Clarendon Hills Astralis Shiraz

获取年份:

final String year = Characters(address).takeLast(4).string;

这里有一个小测试,可以实现您想要的功能。

void main() {
test('Remove first and last string', () {
var s = '15 Clarendon Hills Astralis Shiraz  2009';
var parts = s.split(' ');// Split on every occurence of a space
var year = parts.removeLast();// save and remove the year from the list
s = parts.sublist(1).join(' ');// drop the first item
expect(year, '2009');
expect(s, 'Clarendon Hills Astralis Shiraz ');
});
}

您可以使用此

String message = "15 Clarendon Hills Astralis Shiraz  2009";
var letterDetected = false;
var year = "";
message.runes.forEach((int rune) {
var character=new String.fromCharCode(rune);
if(character.contains(RegExp("[a-z]"))){
letterDetected = true;
}
if(character.contains(RegExp("[0-9]")) && letterDetected){
year = year+character;
}
});
print("year $year");//<== use year as
message = message.replaceAll(RegExp("[0-9]"), "");
print("messsage ${message}"); //<== use normal sentence

试试这个

ElevatedButton(
onPressed: () {
String _str = '15 Clarendon Hills Astralis Shiraz  2009';
String _str2 = _str.replaceAll(RegExp(r'd+'), '').trim();
print(_str2);
String year = _str.substring(_str.length - 4, _str.length);
print(year);
},
child: Text('Pressed'),
);

最新更新