是否可以將此組合單詞拆分爲兩個? 例如:「名字」,以 「第一」 「名稱」c#拆分語句
我有一大堆的屬性,例如名字,姓氏等,我需要我的網頁上顯示這一點。這就是爲什麼我需要分開這個屬性名稱來顯示更合適的方式。
是否可以將此組合單詞拆分爲兩個? 例如:「名字」,以 「第一」 「名稱」c#拆分語句
我有一大堆的屬性,例如名字,姓氏等,我需要我的網頁上顯示這一點。這就是爲什麼我需要分開這個屬性名稱來顯示更合適的方式。
除非你有所有的「單」的話,我能想到的唯一的辦法就是拆就上字母的字典:
姓 - >名
問題的UIFilter仍然存在 - > UI過濾器。
編輯: OP指定的,他需要分割財產名
如果按照首字母大寫命名約定的屬性(即「名字」,而不是「名字」),您可以拆分由大寫字母詞很容易。
string[] SplitByCaps(string input)
{
StringBuilder output = new StringBuilder();
for (int i = 0; i < input.Length; i++)
{
char c = input[i];
if (i > 0 && Char.IsUpper(c))
output.Append(' ');
output.Append(c);
}
return output.ToString().Split(' ');
}
Orinal答案:
我會說,對於實際的目的,這是不可能爲任意字符串做到這一點。
當然,可以編寫一個程序來做到這一點,但無論您的實際需求是什麼,該程序將是矯枉過正的。也有可能已經有這樣的庫,但是它們會非常沉重,以至於你不想依賴它們。
任何能夠實現這一目標的程序都必須知道英語中的所有單詞(我們甚至不考慮多語言解決方案)。你還需要一個智能的詞法分析器,因爲對於任何單詞,可能有多種可能的方式來分解它。
我建議你看看其他方式來解決你的問題。
你的目標很模糊。
如果屬性總是有大寫字母,則可以在單詞中找到所有大寫字母的位置,並按該位置進行區分。
如果不保證大寫字母,最好的辦法是創建轉換表。該表將定義成對的初始屬性名稱和結果文本。通過這種方式,你將有簡單的轉換地圖
這是可能的,但你將不得不解釋算法。我的意思是什麼邏輯?例如,你會如何分割下面的輸入'Ddjkfhsdks'?如果沒有明確的問題描述,您就看不到明確的功能。 – 2011-02-24 10:59:17
*只有那個單詞*?如果是這樣,那麼's.substring(0,5)'和's.substring(5,4)'會做,或者只是:'string s1 =「First」;字符串s2 =「名稱」;'你需要更具體地說明你想要做什麼。 – 2011-02-24 10:59:21
單詞的任何部分是否有固定的長度? – Tamschi 2011-02-24 10:59:35