回答
这应该是有效的。不出汗,如果除非分析告诉你,这是你的应用的瓶颈,这不是最有效的:
string s = "ABC_123_";
int i = Int32.Parse(s.Split('_')[1]);
没有关于您的问题的详细信息,这是我会一起去。
如果你的字符串输入始终处于ABC_123_的形式相同,那么这将工作
int i = Int32.Parse("ABC_123_".Substring(4, 3));
我希望你在面试时永远不要给这个答案。 – 2010-01-11 21:16:11
@bnaffas:你能否提供一些额外的反馈? – clichekiller 2010-01-12 17:54:42
如果字符串等的lenght是固定的,你可以使用String.Substring。
你的字符串越复杂,你应该使用正则表达式越多。
以下是一种方法。我不知道“最有效”,但它应该工作:
int? GetJustIntPart(string original)
{
var split = original.Split('_');
int test;
foreach (var item in split)
{
if (int.TryParse(item, out test))
return test;
}
return null;
}
无论数字部分在哪里,它都可以工作,而不是指望它处于某个位置。它只会返回* first *数字部分,但是,如果您有多个部分。 – 2010-01-11 21:02:15
强制性正则表达式的例子,以匹配所有数字的字符串:
int num = Convert.ToInt32(Regex.Match("ABC_123_", @"\d+").Value);
更改,以确保它是由环绕_:
int num = Convert.ToInt32(Regex.Match("ABC_123_", @"(?<=_)\d+(?=_)").Value);
注:值可能为空/空,如果你输入的字符串是不正确的格式,所以用int.TryParse或try/catch语句等
仅仅使用'Regex.Match(“ABC_123_”,@“_(\ d +)_”)好得多,而不是在这种情况下环视imo。 – 2010-01-11 21:15:27
的确,尽管我不知道有多少不同的性能,特别是在使用编译正则表达式时。 – 2010-01-11 22:37:54
我会去int i = int.Parse(Regex.Match(string,@"\d+"));
- 1. 比较两个字符串的最有效方法是什么?
- 2. 将ifstream读入字符串的最有效方法是什么?
- 3. 连接字符串的最有效方法是什么?
- 4. 什么是进行字符串比较最有效的方法?
- 5. 解析这个字符串的最佳方法是什么?
- 6. 从Java中的字符串中提取此int的最佳方法是什么?
- 7. 什么是检查字符串是否是更大字符串的一部分的最有效方法?
- 8. 从空字符串中获取int的最佳方法是什么?
- 9. 这是解析字符串的最有效方法吗?
- 10. 什么是测试MSSQL中字符串是否包含另一个字符串的最有效方法?
- 11. 在Lua中迭代数字字符串的最有效方法是什么?
- 12. 什么是替换字符串中多个字符的有效方法?
- 13. 检查字符串是否以TCL中的某个字符开始的最有效方法是什么?
- 14. 从字符串中删除所有其他字符的最有效方法是什么?
- 15. 这个字符串中使用的编码方法是什么?
- 16. 跟踪字符串中标记的最有效方法是什么?
- 17. 在php中修改字符串的最有效方法是什么?
- 18. 什么是int(a)(1)?这是一个有效的c + +语法?
- 19. 什么是比较这两个列表最有效的方法?
- 20. 写这个sql查询最有效的方法是什么?
- 21. 什么是更有效的处理这个字符串
- 22. 删除部分字符串的最佳方法是什么? (C#)
- 23. 从第二个字符串中删除第一个字符串中所有字符的最有效方法?
- 24. 分组这个列表对象的有效方法是什么?
- 25. 在java中解析这个字符串的最好方法是什么?
- 26. 什么是从字符串中检索特定部分文本的最有效方法
- 27. 最有效的方法,如果对象是一个字符串
- 28. 划分字符串的有效方法
- 29. 从字符串中获取美分值的最佳方法是什么?
- 30. 这是在C中分割字符串的最好方法吗?
你能告诉我们关于字符串格式? – 2010-01-11 20:57:38
你有什么理由担心效率?你发布的字符串只有几个字符,所以我认为不需要提高效率:任何方式都可以。除非你没有告诉我们你的问题的重要部分。你从事80年代的电脑吗?现实中的字符串是几十万字符长吗? – 2010-01-11 20:59:23
Efficent可能不是最好的单词使用。我想要最短的代码,不一定是最好的性能。我使用3条线来做到这一点,这是在美学上给我带来麻烦。 – 2010-01-11 21:06:19