[英]Use substring function or a regular expression
我想从字符串中提取ID,其形式为“somethinguseless_XXXXX”。 XXXXX是我需要的ID。 字符串始终具有相同的长度,格式不会随时间而变化。
我找到了两个解决方案来提取ID => oldAttribute.substring(17,22)
或Regex.Match(oldAttribute,@"_([0-9]{5})").Groups[1].value
。
你认为哪一个比另一个好?
如果长度一致,则Substring()
也可以正常工作并且可能性能更好。 对几百万次迭代的快速测试可能会验证这一假设。
就个人而言,我选择了3,根据下划线拆分字符串。
var id = "somethinguseless_XXXXXX".Split('_')[1];
你会想做一些更好的测试,以确保数组是你想要的长度,但这是我可能采取的方法。
我知道你已经说过,字符串的长度总是相同的,并且不会随着时间的推移而改变,但是我的经验告诉我,事情总是会改变,而且往往并不总是一样。
使用Regex
比SubString
更易于使用,但我认为SubString
的性能更高。
substring是更好的选择 - 当你知道字符串中ID的位置时。
我的建议,如果格式相同,如果“somethinguseless”不包含_,你可以使用string.split();
int p=5; //length of the substring
string id = oldAttribute.substring(oldAttribute.Length-p, p)
去第二个。
Regex.Match(oldAttribute,@ “_([0-9] {5})”)。组[1]。价值
这甚至可以用于下划线之前的字符串长度无论如何变化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.