Tag: 字符串

获取字符串中第n个char出现的索引

我正在尝试创建一个函数,该函数返回字符串中给定char的第N次出现的索引。 这是我的尝试: private int IndexOfNth(string str, char c, int n) { int index = str.IndexOf(c) + 1; if (index >= 0) { string temp = str.Substring(index, str.Length – index); for (int j = 1; j < n; j++) { index = temp.IndexOf(c) + 1; if (index < 0) { return -1; } temp = temp.Substring(index, […]

扩展String类与IsNullOrEmpty混淆?

每个人都知道并喜欢String.IsNullOrEmpty(yourString)方法。 我想知道如果我们将String类扩展为具有这样的方法,是否会混淆开发人员或使代码更好: yourString.IsNullOrEmpty(); 优点: 更具可读性。 减少打字。 缺点: 可能会令人困惑,因为yourString变量可以为null ,看起来你正在对null变量执行方法。 你怎么看? 我们可以询问有关myObject.IsNull()方法的相同问题。 那怎么写我: public static class StringExt { public static bool IsNullOrEmpty(this string text) { return string.IsNullOrEmpty(text); } public static bool IsNull(this object obj) { return obj == null; } }

如何在string.Format c#中进行对齐?

嗨,我有一个问题,我有这行代码: return string.Format(“{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}”, Name, CPSA, PostCode, Rank, Score1, Score2, Score3, Score4, Score5, Score6, Score7, Score8); 它从文本文件中提取数据并在列表框中输出。 我想在左边和右半边certificate其中的一半是正确的,所以在梦境中: return string.Format(“align=left({0}, {1}, {2}, {3}, {4},) align=right ({5}, {6}, {7}, {8}, {9}, {10}, {11})”, Name, CPSA, PostCode, Rank, Score1, Score2, Score3, Score4, Score5, Score6, Score7, Score8); 我环顾四周但不知道怎么做,我也是一个编码菜鸟,所以请解释。 […]

C#中的字符串列表中的高性能“包含”搜索

我有一个大约的列表。 500,000个字符串,每个约。 100个字符长。 给定搜索词,我想识别列表中包含搜索词的所有字符串。 目前,我使用Select方法(“MATCH%term%”)使用普通旧数据集执行此操作。 这在我的笔记本电脑上大约需要600毫秒。 我想让它更快,也许100-200ms。 什么是推荐的方法? 性能至关重要,因此我可以在必要时(在合理范围内)交换内存占用以获得更好的性能 一旦初始化,字符串列表就不会改变,因此计算哈希值也是一种选择。 有没有人有推荐,哪种C#数据结构最适合这项任务?

C ++中的String.Format替代

我没有太多使用C ++的经验。 相反,我在C#中工作得更多,所以,我想问一下我在那里会做些什么。 我必须生成一个特定的字符串格式,我必须将其传递给另一个函数。 在C#中,我可以通过以下简单代码轻松生成字符串。 string a = “test”; string b = “text.txt”; string c = “text1.txt”; String.Format(“{0} {1} > {2}”, a, b, c); 通过生成这样一个上面的字符串,我应该能够在system()传递它。 但是, system只接受char* 我使用的是Win32 C++ (不是C ++ / CLI),并且不能使用boost因为它会包含太多包含项目本身非常小的所有文件。 像sprintf()这样的东西对我来说很有用,但是sprintf不接受string作为a , b和c参数。 有什么建议我如何生成这些格式化的字符串以传递给我的程序中的系统?

更换字符串中的多个字符,最快的方法是什么?

我正在导入一些包含多个string字段的记录,从旧数据库到新数据库。 它看起来很慢,我怀疑是因为我这样做: foreach (var oldObj in oldDB) { NewObject newObj = new NewObject(); newObj.Name = oldObj.Name.Trim().Replace(‘^’, ‘Č’).Replace(‘@’, ‘Ž’).Replace(‘[‘, ‘Š’) .Replace(‘]’, ‘Ć’).Replace(‘`’, ‘ž’).Replace(‘}’, ‘ć’) .Replace(‘~’, ‘č’).Replace(‘{‘, ‘š’).Replace(‘\\’, ‘Đ’); newObj.Surname = oldObj.Surname.Trim().Replace(‘^’, ‘Č’).Replace(‘@’, ‘Ž’).Replace(‘[‘, ‘Š’) .Replace(‘]’, ‘Ć’).Replace(‘`’, ‘ž’).Replace(‘}’, ‘ć’) .Replace(‘~’, ‘č’).Replace(‘{‘, ‘š’).Replace(‘\\’, ‘Đ’); newObj.Address = oldObj.Address.Trim().Replace(‘^’, ‘Č’).Replace(‘@’, ‘Ž’).Replace(‘[‘, ‘Š’) .Replace(‘]’, ‘Ć’).Replace(‘`’, ‘ž’).Replace(‘}’, ‘ć’) .Replace(‘~’, ‘č’).Replace(‘{‘, ‘š’).Replace(‘\\’, ‘Đ’); […]

.NET方法将字符串转换为句子大小写

我正在寻找一个函数来将UpperCase中的一串文本转换为SentenceCase。 我能找到的所有例子都将文本转换为TitleCase。 一般意义上的句子描述了在句子中使用大写的方式。 句子案例还描述了英语句子的标准大写,即句子的第一个字母大写,其余为小写(除非因特定原因需要大写,例如专有名词,首字母缩略词等)。 有人能指出我对SentenceCase的脚本或函数的方向吗?

.NET和Javascript中的简单字符串加密

我正在开发一个ASP.NET MVC应用程序,其中我想使用C#加密服务器上的短字符串,并将其发送到客户端。 然后在客户端,它将通过Javascript代码解密。 有关如何实现这一点的任何想法? 您是否知道一种简单的加密算法(不必是防弹安全的),可以很容易地从C#转换为Javascript,反之亦然? 注意:我可以在C#中完全执行此操作并通过Ajax进行解密,但我不希望这样做,因为我希望尽可能减少网站流量。

将float转换为double丢失精度但不通过ToString

我有以下代码: float f = 0.3f; double d1 = System.Convert.ToDouble(f); double d2 = System.Convert.ToDouble(f.ToString()); 结果相当于: d1 = 0.30000001192092896; d2 = 0.3; 我很想知道为什么会这样?

将列表转换为数字范围字符串

这个问题几乎与这个问题相反: C#是否内置支持解析页码字符串? 所以给定 1,3,5,6,7,8,9,10,12: 我会输出: 1,3,5-10,12 这是我的第一次尝试。 它看起来有点像hacky,可能是我写过的最糟糕的代码。 你能提出一个改进的方法吗?更好的办法吗? static string numListToRangeStr(List numList) { StringBuilder retString = new StringBuilder(); numList.Sort(); bool inRangeFind = false; int firstInRange = numList[0]; int lastNumber = firstInRange; bool first = true; for (int i = 1; i < numList.Count; i++) { if (numList[i] == (lastNumber + 1)) { inRangeFind = […]