[英]how to split the words from specified string in c#?
我有一個字符串getallairlinedetails
。 指定的字符串之間沒有空格,也沒有任何定界符。 我如何像這樣拆分字符串:“獲取所有航空公司詳細信息”
由於這里沒有明顯的分割模式,因此沒有可靠的方式進行分割。
但是,如果要溢出的單詞集不是很大-您可以嘗試創建一些詞典,然后使用該詞典進行拆分。
您可以嘗試用字典中的每個單詞替換字符串
word_from_dictionary => " " + word_from_dictionary + " "
並使用String作為分隔符,將結果字符串按String.Split
進行拆分。
例如,讓您的詞典包含單詞“ get”,“ all”和“ details”。
然后,通過替換詞典中的所有單詞,您將get all airline details
-這可以拆分。
當然,這不是一種非常可靠的方法,因為它取決於您需要以某種方式填充的字典。
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
並將任何單詞添加到字典中都會返回不同的單詞。
沒有問題的話,就沒有辦法做到這一點。
這是不可能的。 Split方法需要至少一個字符(例如空格)才能分割字符串。 否則,沒有任何條件可將字符串拆分為子字符串數組。
在嘗試選擇一種類型的方法來解決它之前,請考慮問題。 您將如何分割此字符串? 您的算法是什么?
考慮到后者,很快您將意識到您無法拆分它,因為您沒有任何可以依靠的東西。
例如,在您的情況下,如果字符串是這樣的:
"get_all_airline_details"
很顯然,所有的單詞都用_
分隔。 因此,從左到右,您將在第一個_
處找到第一個單詞的結尾。 然后第二個單詞將在此_
之后開始,並將在第二個_
結束,依此類推。
當然,這是您將在注意到此字符串時想到的。 如果要在c#中拆分它,可以使用字符串的split方法傳遞此字符_
。 但是,以上內容是我們首先應該找到一個“模式”,然后嘗試分割字符串的事實。 然后,您將使用哪種語言來執行此操作就沒關系了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.