我有一個字符串getallairlinedetails
。在指定的字符串之間沒有空格或分隔符。我如何分割這樣的字符串:「獲取所有航空公司的詳細信息」如何拆分C#中指定字符串的單詞?
回答
這是不可能的。 Split方法至少需要一個字符,比如空格,以便分割字符串。否則,沒有任何標準將字符串拆分爲一組子字符串。
在嘗試選擇類型的方法來解決問題之前,請考慮問題。你會如何分割這個字符串?你的算法是什麼?
想想後者,很快你會意識到你根本無法分裂它,因爲你沒有任何可以依賴的東西。
例如,你的情況,如果字符串是這樣的:
"get_all_airline_details"
它會一直明確表示,所有的話都彼此分開了_
。因此,從左到右,您會在第一個_
處找到第一個單詞的結尾。然後,第二個單詞將在此_
之後開始,並將在第二個_
等結束,等等。
當然這被認爲你會發現當你會注意到這個字符串。如果你想在C#中分割它,你可以使用字符串的分割方法傳遞這個字符_
。然而,上述的結論是,我們應該先找到一個「模式」,然後嘗試分割字符串。那麼你將使用哪種語言來做到這一點,這並不重要。
它似乎是一個評論 – 2015-04-03 08:37:18
@SaiKalyanKumarAkshinthala這是我的第一個想法。但是,我再次想到了這一點,我意識到這是唯一可以解決這個問題的答案。 – Christos 2015-04-03 08:38:35
有沒有什麼辦法可以從這個字符串中得到這樣的單詞:get – 2015-04-03 08:39:05
由於這裏沒有明顯的拆分模式,因此沒有可靠的方式供您使用。
但是,如果您的單詞溢出不是很大 - 您可以嘗試創建一些字典,然後使用該字典進行分割。
你可以嘗試從字典
word_from_dictionary => " " + word_from_dictionary + " "
和拆分使用空間作爲分隔符由String.Split
得到的字符串在字符串中的每個字代替。
例如,讓你的字典包含單詞「get」,「all」和「details」。
然後,通過替換字典中的所有單詞,您將獲得get all airline details
- 這可以被拆分。
當然,這不是一個非常可靠的方式,因爲它取決於你需要以某種方式填充字典。
另外,如果字典同時包含「航空公司」和「空中」,那麼你不想拆分「航空公司」。 – 2015-04-03 08:57:51
@HansKesting當然。其實它暗含在「*它是不是非常可靠的方式,因爲它取決於字典*」太...感謝重音這個問題。 – 2015-04-03 09:00:35
鑑於一般來說這是一個壞主意,我不確定使用「Contains」作爲你的建議是一個好主意,而不是試圖從左到右查找單詞,並在你找不到一個單詞時停止。顯然這樣你就需要一個完整的字典,而不是像你所建議的那樣是一部分字典。因此,考慮到「get all airline」和「getallairlinedetails」這兩個詞,你開始使用'StartsWith'查找並刪除找到的單詞。 – xanatos 2015-04-03 10:26:51
public static List<string> Dict = new List<string> { "details", "airline", "all", "get" };
static void Main(string[] args)
{
String s = "getallairlinedetails";
Console.WriteLine(ReturnSplitString(s));
Console.ReadLine();
}
public static string ReturnSplitString(string s)
{
string[] ww = new string[s.Length];
foreach (string word in Dict)
{
if (s.Contains(word))
{
int ind = s.IndexOf(word);
ww[ind] = word;
}
}
string sf = "";
foreach (string sr in ww)
{
if (sr != null)
sf += sr + " ";
}
return sf.TrimEnd(' ');
}
這樣的事情將是你唯一的選擇,遍歷包含個別字的字典,由他們在字符串中的位置將它們存儲,然後再加入數組了在年底才能。
該代碼正確返回的方式,只是改變s
並添加任何單詞到字典將返回不同的單詞。
沒有辦法做到這一點,至少沒有知道你在尋找什麼,雖然是問題。
- 1. 按字符數拆分字符串而不拆分單詞
- 2. 如何從字符串中讀取並拆分某些單詞?
- 3. 如何從一個拆分字符串中提取單詞
- 4. 如何在C#中拆分字符串
- 5. 在指定長度的子字符串中拆分字符串
- 6. 如何拆分字符串而不丟失任何單詞?
- 7. 如何將字符串拆分爲單詞和Python中的特殊字符?
- 8. 在沒有拆分詞的子字符串(行)中拆分字符串
- 9. 將多語言字符串拆分爲單詞c#
- 10. C++函數將字符串拆分爲單詞
- 11. 搜索指定單詞的字符串
- 12. 在javascript中以較小的單詞/字符串拆分長字/字符串
- 13. 拆分字符串以獲取單詞分隔符
- 14. 如何通過數字從字符串中分離單詞C
- 15. C#拆分字符串 - 將字符串拆分爲數組
- 16. 圍繞任何未指定字符拆分字符串
- 17. 如何將多字節字符串拆分爲Php中的單詞?
- 18. 如何將字符串拆分爲單詞並獲取c#中不同的單詞?
- 19. C - 拆分字符串
- 20. 拆分字符串值C#
- 21. 拆分字符串值c#
- 22. 用C拆分字符串
- 23. 在SQL中指定字符處拆分字符串
- 24. 拆分爲字符串列表中的單詞
- 25. 在下一個冒號前的單詞中拆分字符串?
- 26. 將字符串拆分爲php中的單詞
- 27. 拆分太長的單詞與' - '字符
- 28. 如何拆分字符串?
- 29. 如何拆分字符串?
- 30. 如何拆分字符串?
我沒有看到任何模式來分割它。 – 2015-04-03 08:36:18
是否有任何可能的方式,我可以從這個字符串像航空公司得到的話或得到 – 2015-04-03 08:40:11
無論如何看看'String.Split'重載或其他'字符串'方法.. – 2015-04-03 08:41:48