分词和分词有区别吗?
本文关键字:分词 有区别 | 更新日期: 2023-09-27 18:14:53
这两个函数的输出有什么不同吗?我有一个文本编辑器,我正在修改一个网站。编辑器目前按字符分割,但我要将其切换为按单词或短语分割。
按字符分割
string words = "word1*word2*word3*word4";
string[] collectionofWords = words.Split('*');
按字分割
string words = "word1***word2***word3***word4";
string[] collectionofWords = words.Split(new string[] { "***" }, StringSplitOptions.None);
即使在困难的情况下,这些函数也能完全相同吗?
在我上面的例子中,它们看起来是相同的,但是如果有空数据(EG1)或者如果在字符串的开始或结束处有字符(EG2),这些函数仍然会产生相同的结果吗?
是否有任何情况下,这两个函数会产生不同的结果给定相同的数据传入?
<EG1/strong>
string words = "word1*word2**word4";
string words = "word1***word2******word4";
EG2
string words = "*word1*word2*word3*word4*";
string words = "***word1***word2***word3***word4***";
如果您害怕不同的结果,您可以使用另一种方法拆分正则表达式匹配:
string words = "word1*word2*word3*word4";
string words2 = "word1***word2***word3***word4";
string[] arr = Regex.Split(words, @"'*+");
string[] arr2 = Regex.Split(words2, @"'*+");
if (arr.SequenceEqual(arr2))
Console.WriteLine("Arrays are equal");
与这里建议的相反,从字符串类实现来看,这是两个不同的方法,具有不同的依赖关系。
根据设计,预期的输出应该与MSDN文档相同(撇开性能差异)。
简而言之:不。使用字符重载进行拆分和使用字符串重载进行拆分在功能上没有区别。然而,由于需要更多的检查,使用字符串分割应该比使用字符串分割效率略低。
而且据我所知,它们在相同的情况下会起相同的作用,因为它们基本上是相同的代码,只是比较不同。