回答
這應該是有效的。不出汗,如果除非分析告訴你,這是你的應用的瓶頸,這不是最有效的:
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. 分離ldap連接字符串的最佳方法是什麼?
- 3. 確定字符串中第一個字符的最有效方法是什麼?
- 4. 打印AVL字符串樹的最有效方法是什麼?
- 5. 什麼是進行字符串比較最有效的方法?
- 6. 連接字符串的最有效方法是什麼?
- 7. 將ifstream讀入字符串的最有效方法是什麼?
- 8. 什麼是在JavaScript中通過字符串的字符最有效的方法?
- 9. 解析這個字符串的最佳方法是什麼?
- 10. 從變量中分離兩個字符串的最佳方法
- 11. 解析字符串內的這個字符串的最佳方法是什麼?
- 12. 在Python中分解這個字符串的最好方法是什麼?
- 13. 從Java中的字符串中提取此int的最佳方法是什麼?
- 14. 什麼是檢查字符串是否是更大字符串的一部分的最有效方法?
- 15. 從空字符串中獲取int的最佳方法是什麼?
- 16. 這是解析字符串的最有效方法嗎?
- 17. 什麼是測試MSSQL中字符串是否包含另一個字符串的最有效方法?
- 18. 在Lua中迭代數字字符串的最有效方法是什麼?
- 19. 什麼是替換字符串中多個字符的有效方法?
- 20. 檢查字符串是否以TCL中的某個字符開始的最有效方法是什麼?
- 21. 從字符串中刪除所有其他字符的最有效方法是什麼?
- 22. 這個字符串中使用的編碼方法是什麼?
- 23. 什麼是int(a)(1)?這是一個有效的c + +語法?
- 24. 在php中修改字符串的最有效方法是什麼?
- 25. 跟蹤字符串中標記的最有效方法是什麼?
- 26. 在C中實現可變字符串的最有效方法是什麼?
- 27. 寫這個sql查詢最有效的方法是什麼?
- 28. 什麼是比較這兩個列表最有效的方法?
- 29. 什麼是在這裏拆分字符串的好方法?
- 30. 什麼是更有效的處理這個字符串
你能告訴我們關於字符串格式? – 2010-01-11 20:57:38
你有什麼理由擔心效率?你發佈的字符串只有幾個字符,所以我認爲不需要提高效率:任何方式都可以。除非你沒有告訴我們你的問題的重要部分。你從事80年代的電腦嗎?現實中的字符串是幾十萬字符長嗎? – 2010-01-11 20:59:23
Efficent可能不是最好的單詞使用。我想要最短的代碼,不一定是最好的性能。我使用3條線來做到這一點,這是在美學上給我帶來麻煩。 – 2010-01-11 21:06:19