簡體   English   中英

如何從C#中的指定字符串拆分單詞?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM