Java 在C#中实现子字符串,它使用哪种算法?
我有个问题,我正在研究一些编程语言。 这项研究是关于C#和Java中子字符串函数的效率 像C#是用蛮力的方式,还是他们像个好孩子一样实现了Boyer Moore的算法。 我需要这方面的源代码,我已经为Java找到了它(对于那些想知道的人,他们在indexOf()方法中使用了蛮力实现) 有人知道我如何在C#中检索这些方法的源代码吗。 我的笔记本电脑上安装了visual Studio,但我找不到任何源代码Java 在C#中实现子字符串,它使用哪种算法?,java,c#,performance,algorithm,substring,Java,C#,Performance,Algorithm,Substring,我有个问题,我正在研究一些编程语言。 这项研究是关于C#和Java中子字符串函数的效率 像C#是用蛮力的方式,还是他们像个好孩子一样实现了Boyer Moore的算法。 我需要这方面的源代码,我已经为Java找到了它(对于那些想知道的人,他们在indexOf()方法中使用了蛮力实现) 有人知道我如何在C#中检索这些方法的源代码吗。 我的笔记本电脑上安装了visual Studio,但我找不到任何源代码 非常感谢你的帮助 微软已经发布了完整的框架源代码,包括注释。您将找到实际的实现。对于子字符串,
非常感谢你的帮助 微软已经发布了完整的框架源代码,包括注释。您将找到实际的实现。对于
子字符串
,它归结为一些非托管代码:
[System.Security.SecurityCritical] // auto-generated
unsafe string InternalSubString(int startIndex, int length) {
Contract.Assert( startIndex >= 0 && startIndex <= this.Length, "StartIndex is out of range!");
Contract.Assert( length >= 0 && startIndex <= this.Length - length, "length is out of range!");
String result = FastAllocateString(length);
fixed(char* dest = &result.m_firstChar)
fixed(char* src = &this.m_firstChar) {
wstrcpy(dest, src + startIndex, length);
}
return result;
[System.Security.SecurityCritical]//自动生成
不安全的字符串InternalSubString(int startIndex,int length){
Contract.Assert(startIndex>=0&&startIndex=0&&startIndex=0&&startIndex)非常感谢您!不知道他们发布了它,因为它一直是封闭源代码的。@user1758777使.NET开源是最近的一项发展——在过去两个月里。请参阅。