嘿,伙计们只是想了解一些事情。
我有这段代码:
var testString = "DA DDDLY DO:DAXS D/B#BTN A TIME/DTE:0027/01NOV";
var testTrimStart = testString.TrimStart("DA ".ToCharArray());
testTrimStart输出:
LY DO:DAXS D / B#BTN A TIME / DTE:0027 / 01NOV
有人可以解释原因吗
DA DDD
已删除。
我能理解它是否
DA DA DDDLY DO ....
我知道它正在搜索的是CHAR类型的数组。但它不应该是搜索和替换
“DA”
整个字符串?
这是.NET FIDDLE链接
答案 0 :(得分:4)
你说:
'D'
,'A'
或空格。 TrimStart
中记录了if first character of string is either a 'D', a 'A', or a space
then remove that character
and repeat this algorithm for the next character (which is now the first)
的行为:
从当前String对象中删除数组中指定的字符集的所有前导出现。
(我的重点)
基本上TrimStart方法是伪代码:
Regex.Replace(testString, "^DA ", string.Empty);
实际实施比这更优化,但这是你可以总结的方式。
如果你的意思是:
从字符串的开头删除此特定子字符串(如果存在)
然后有两种方法:
使用正则表达式
if (testString.StartsWith("DA "))
testString = testString.Substring(3); // 3 == length of "DA "
使用子字符串和比较
自己查找 String urlParameters = "data=" + gson.toJson(Object).toString();
如果你这样:
那么你不能保证在字符串的最开始就会发生替换。