使用Unity3d开发VR有几个月了,据说string的 Indexof 方法要尽量避免频繁使用,在把自己的框架移植成Unity3d的过程中,恰巧有个地方需要频繁调用,于是突发奇想,用了下面的办法一定程度替代Indexof方法的使用。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Text;
public static class SDExtension
{
public static bool HasSub(this string target, string check)
{
StringBuilder sb = new StringBuilder(target);
int m = sb.Length;
sb = sb.Replace(check, check + "1");
return (m != sb.Length);
}
}
利用StringBuilder类高效生成字符串的特性,将要查找的子串在StringBuilder中替换成一个新串,如果替换后的字符串长度多出指定数量,则说明原字符串中包含有子串,从而达到判断字符串是否包含一个子串的作用(str.IndexOf("sss") != -1)。同时也避免了频繁调用string引起的性能影响,但缺点是不能像IndexOf一样返回子串在原字符串里的起始索引号。由于还是一个尝试,其可用性还需要验证,有不对的或者有更好的方案欢迎跟帖。
分享到:
相关推荐
4. `IndexOf()`:这个方法查找指定字符或子字符串在原字符串中的位置。如果找到,返回起始索引;否则,返回-1。例如,`int index = str.IndexOf("World");` 5. `Substring()`:从字符串中截取一部分,例如`string ...
C#的`string`类提供了丰富的字符串操作方法,如`Split()`用于按特定字符分割字符串,`Trim()`用于去除两端的空白,以及`IndexOf()`和`Substring()`用于查找和提取子字符串。 在实现计算器时,我们可以采用两种常见...
C#提供了丰富的字符串方法,如`IndexOf`、`Replace`和`Substring`等,可以方便地完成文本查找和替换。 6. **对话框**:在Windows Forms中,可以使用预定义的对话框组件,如`OpenFileDialog`(打开文件对话框)和`...
1.4.24 IndexOf方法——确定指定字符在字符串中的索引 65 1.4.25 IsLeapYear方法——判断年份是否为闰年 67 1.4.26 IsMatch方法——搜索正则表达式匹配项 67 1.4.27 IsUpper方法——判断是否大写 68 1.4.28 Join方法...
C#的String类提供了丰富的字符串操作方法,如Substring、IndexOf、Replace等,可以帮助我们实现这些功能。同时,我们需要关注文本选区的处理,例如通过设置TextBox的SelectionStart和SelectionLength属性来管理当前...
在C#中,可以使用字符串方法,如`IndexOf`和`Replace`,结合循环遍历文本,实现文本的查找和替换。用户可以设定搜索条件,如大小写敏感、全词匹配等,以满足不同需求。 “转到”功能允许用户快速跳转到文本的特定行...
数据的加密与解密 文件的加密与解密 ... //定义一个变量,用来存储加密后的字符串 for (int i = 0; i ; i++) //遍历字符串中的每一个字符串 { string ins = c[i].ToString(); //记录遍历到的字符 string outs...
C#中的字符串是不可变的,提供丰富的字符串操作方法,如Concat、IndexOf、Replace等。 通过阅读“Chapter 1 of Textbook.pdf”,你将对这些基础概念有更深入的理解,为后续章节的学习打下坚实的基础。在实际编程中...
5. **字符串处理**:对用户输入的文本进行复制、剪切、粘贴、查找和替换等功能,需要用到C#的字符串方法,如`Substring`、`Replace`、`IndexOf`等。 6. **多线程**:如果记事本支持大文件的读写,可能需要使用多...
同时,我们还需要掌握字符串操作的相关方法,如Substring、IndexOf、Replace等,以实现查找和替换功能。 为了实现记事本的扩展功能,可以考虑以下几点: 1. **样式和格式化**:允许用户更改文本的字体、大小、颜色...
C#的`string`类提供了`IndexOf()`和`Count()`等方法,结合循环和条件判断,可以轻松实现这个功能。 至于“美女时钟”和“英汉翻译”,这两个可能涉及到更具体的应用场景,比如可以利用C#的DateTime类和线程异步处理...
2. 字符串处理:C#的`String`类提供了丰富的操作方法,如`Substring`用于截取字符串,`IndexOf`和`Replace`分别用于查找子字符串和替换字符串。`StringBuilder`类在大量字符串操作时更为高效,因为它避免了多次内存...
2. **数组或列表存储脏词**:项目可能定义了一个字符串数组或`List<string>`,用来存储预定义的脏词列表。这些脏词可以是用户在配置文件中设定,也可以是程序内置的。 3. **正则表达式**:为了更复杂和灵活的匹配,...
- `Console`类:它是C#中的一个内置类,提供了在控制台上进行输入和输出的功能。`Console.Write`用于输出文本,但不会换行,而`Console.WriteLine`会输出文本并自动换行。`Console.ReadLine`用于从控制台读取用户...
5. **字符串处理**:查找和替换功能涉及到对文本字符串的操作,如查找子字符串、替换特定文本等,这将使用到C#的字符串方法,如`IndexOf`、`Replace`和正则表达式。 6. **多线程**:虽然简单的记事本可能不需要,但...
AS3是一种面向对象的编程语言,其内置的String类提供了许多基础的字符串操作方法,如concat()用于连接字符串,indexOf()和lastIndexOf()用于查找子字符串的位置,replace()用于替换子字符串等。然而,这些基础方法在...
- .NET Framework中的Array.IndexOf()方法可以用于在数组中查找指定元素的位置。 #### 五、.NET Framework中的数据结构与算法 - 在.NET Framework中,数据结构和算法是通过一系列类库实现的,这些类库提供了丰富的...
5. **文本处理**:为了实现文本编辑功能,你需要了解字符串操作,如查找、替换、复制、粘贴等,这些可以通过字符串方法实现,如IndexOf、Replace、Substring等。 6. **UI设计**:为了让记事本看起来更漂亮,你可能...
4. **重写或实现接口方法**:如果 `MyAddressList` 扩展了 `List<T>` 或实现了 `IList<T>`,那么它可能需要重写一些基本的集合操作,如 `Insert`, `RemoveAt`, `IndexOf` 等。 5. **遍历和排序功能**:为了方便操作...
每个字段都定义了明确的数据类型,如字符串类型用于存储文本信息,而双精度浮点型用于存储分数。 `studentinformation`类则封装了对`student`结构体的管理操作,包括添加、显示和搜索学生信息。这些操作通过与外部...