我正在寫一個小班來讀取文件中的鍵值對列表並寫入Dictionary<string, string>
。此文件將具有以下格式:從字符串中刪除所有「不可見」字符?
key1:value1
key2:value2
key3:value3
...
這應該是很容易做到,但由於用戶是要手工編輯這個文件,我應該如何處理空格,製表符,多餘的跳躍之類的東西?我大概可以使用Replace來刪除空格和製表符,但是,還有其他「隱形」字符嗎?
或者也許我可以刪除所有不是字母數字,「:」和行跳轉的字符(因爲行跳是將另一對分開的行),然後刪除所有多餘的行跳轉。如果這樣,我不知道如何刪除「除了一些」之外的所有字符。
當然,我也可以檢查「key1:value1:somethingelse」等錯誤。但是這樣的東西實際上並不重要,因爲這顯然是用戶的錯,我只會顯示「無效格式」消息。我只是想處理基本的東西,然後把所有的東西放在try/catch塊中,以防萬一出錯。
注意:我根本不需要任何空格,即使是在一個鍵或值中。
最自然的解決方案(對於這樣一個簡單的問題,顯然有很多正確的解決方案)取決於你如何從文件中讀取數據。你能發佈一個相關的代碼片段嗎? – Jon 2011-03-14 19:18:01
「隱形」是什麼意思? http://www.fileformat.info/info/unicode/char/200c/index.htm(ZERO WIDTH [NON] JOINER,一般標點符號)或者http://www.fileformat.info/info/unicode/ char/202a/index.htm(左對右嵌入另一個一般標點符號)不可見? :-)和http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Mathematical_invisibles ...你怎麼能沒有生活? :-) :-)這裏有一個關於U字符的可見性的問題http://stackoverflow.com/questions/304483/determining-if-a-unicode-character-is-visible – xanatos 2011-03-14 19:22:50