String 如何删除Dart中字符串的所有空白?
使用String 如何删除Dart中字符串的所有空白?,string,flutter,dart,whitespace,String,Flutter,Dart,Whitespace,使用trim()。 我做错了什么,或者有其他选择吗 String product = "COCA COLA"; print('Product id is: ${product.trim()}'); 控制台打印:产品id为:COCA-COLA修剪方法只需删除前导和尾随。使用Regexp灌输: 以下是一个例子: 试试这个 String product = "COCA COLA"; print('Product id is: ${product.re
trim()。
我做错了什么,或者有其他选择吗
String product = "COCA COLA";
print('Product id is: ${product.trim()}');
控制台打印:产品id为:COCA-COLA
修剪方法只需删除前导和尾随。使用Regexp灌输:
以下是一个例子:
试试这个
String product = "COCA COLA";
print('Product id is: ${product.replaceAll(new RegExp(r"\s+\b|\b\s"), "")}');
更新:
String name = '4 ever 1 k g @@ @';
print(name.replaceAll(new RegExp(r"\s+"), ""));
使用微调功能
String name = "Stack Overflow";
print(name.trim());
这会解决你的问题
String name = "COCA COLA";
print(name.replaceAll(' ', ''));
如果这对将来的某个人有任何帮助,为了方便起见,您可以为String类定义一个扩展方法:
extension ExtendedString on String {
/// The string without any whitespace.
String removeAllWhitespace() {
// Remove all white space.
return this.replaceAll(RegExp(r"\s+"), "");
}
}
扩展字符串字符串上的扩展{
String removeWhitespace(){
返回此。replaceAll(“”,”);
}
}
这可以像product.removeWhiteSpace()一样调用。
我过去使用它来创建一个助手方法,在按字符串排序列表时忽略大小写和空格
扩展字符串字符串上的扩展{
字符串toSortable(){
返回此.toLowerCase().replaceAll(“”,”);
}
}
您可以尝试以下方法:
String product = "COCA COLA";
print(product.split(" ").join("")); // COCACOLA
使用正则表达式(RegExp
)
如果原始字符串包含多个空格,并且要删除所有空格。应用下面的解决方案
String replaceWhitespacesUsingRegex(String s, String replace) {
if (s == null) {
return null;
}
// This pattern means "at least one space, or more"
// \\s : space
// + : one or more
final pattern = RegExp('\\s+');
return s.replaceAll(pattern, replace);
}
像这样打电话
print(replaceWhitespacesUsingRegex('One Two Three Four', '')); // Output: 'OneTwoThreeFour'
使用trim()
trim()
方法用于删除前导空格和尾随空格。它不会改变原始字符串。如果字符串末尾的开头没有空格,它将返回原始值
print(' COCA COLA'.trim()); // Output: 'COCA COLA'
print('COCA COLA '.trim()); // Output: 'COCA COLA'
print(' COCA COLA '.trim()); // Output: 'COCA COLA'
使用trimleeft()
和trimlright()
如果您只想在开始时修剪,而不想在结束时修剪,或者相反的方式,该怎么办。您可以使用trimleeft
仅删除前导空格,也可以使用trimlright
仅删除尾随空格
print(' COCA COLA '.trimLeft()); // Output: 'COCA COLA '
print(' COCA COLA '.trimRight()); // Output:' COCA COLA'
如果字符串可以是<代码> null <代码>,可以考虑使用NULL感知运算符。
String s = null;
print(s?.trim());
上述代码将返回null
,而不是抛出NoSuchMethodError
作者:我知道这个问题有很好的答案,但我想展示一种奇特的方法来删除字符串中的所有空白。实际上,我认为Dart应该有一个内置的方法来处理这个问题,所以我为String类创建了以下扩展:
extension ExtendedString on String {
/// The string without any whitespace.
String removeAllWhitespace() {
// Remove all white space.
return this.replaceAll(RegExp(r"\s+"), "");
}
}
现在,您可以用一种非常简单整洁的方式使用它:
String product = "COCA COLA";
print('Product id is: ${product.removeAllWhitespace()}');
在我看来是正确的。您希望它打印什么?“COCA-COLA”是“COCA-COLA”,不是吗?结果应该是COCA-COLA,不带空格strim()删除字符串开头和结尾的空格。它不会影响其中的空格。Look string.replaceAll。别担心,这是一个很好的解决方案。这不起作用。。试试这个String name='4 ever 1 k g@@@;打印(name.replaceAll(新的RegExp(r“\s+\b |\b\s”),”)代码>@Fobos空白未删除,请共享其他RegExp@FurkanVijapura试试这个:字符串名='4 ever 1 k g@@@;打印(name.replaceAll(新的RegExp(r“\s+”)”)”);所以应该和更新一起去吗?有什么区别吗?trim只是删除了stringbad答案开头和结尾的空格。我对此投了反对票,因为问题是删除所有空白,包括中间的空白。trim()只删除前导空格和尾随空格。如何删除同一字符串中的不同出现?就像我的字符串是“hello%25sachin%20here”,我想删除“%25”和“%20”这两个…这一个很整洁,谢谢你知道“+$”是什么意思吗?