今天我們要介紹的是字元與字串的使用技巧
String 型別算是程式設計中最常用的一種型別了
舉凡訊息的顯示, 條件的判斷等等都會使用到他
而現在的程式語言, String 型別的空間都已經幫您做好最佳的配置, 不用像以前學 C 語言
要自行去分配 String 的使用空間(如 malloc) , 以及字串結尾的判定 (\0)
如同我們在前面的數字篇當中所提的魔術數字一樣, 字元與字串的使用調避免魔術字元或字串的問題, 怎麼說呢?
一般我們常會使用條件是的判斷, 判斷某變數的值是否等於某個字串值, 如:
if x="字串A" then
...
當這個字串的值的判斷需要出現在很多地方時, 以後要更, 就必須要將程式的專案整個 scan 一遍, 去改變他的值, 甚者程式還要重新編譯, 才能夠再上線運作
所以比較好的方式, 是使用具名常數(Constant)來取代魔術字元或字串的使用, 這樣程式在維護上會比較方便
尤其在現在多國語言的環境中, 我們不可能為每一種語言去編寫同樣的程式但不同的顯示字串, 因為這樣在資源的運用上是很浪費的, 同時也提高很多的維護成本
所以現在的程式語言都會提供資源檔或設定檔的使用方式, 來提高程式的維護性, 與適應多國語言的環境來使用
資源檔, 從早期的 ini 檔開始, 一直就是程式設計師所常使用的一種方式, 後來像 Windows 的 Registry Repository 以及 java 語言的 properties 檔也都是同樣的概念, 甚至於最新的網頁程式設計所使用的 XML 格式, 都是來幫助我們解決上述問題的一種方式(當然更大的用途, 是在做參數的設定與調整)
我記得以前有幸在跨國軟體公司服務的時候, 當時一個頁面的推出都要有英文, 繁中, 簡中, 日文, 法文, 德文等多種版本, 在只熟悉繁體及英文的情況下, 透過跨國的聯繫來取得所需要的文字對應檔, 是當時很重要的工作之一
現今則有很多翻譯的軟體可以來做這些事情, 但機器翻的畢竟讀起來就少了那麼一點人性
好了, 今天就介紹到這邊, 期望明天的大富翁大家都能夠抽中大獎, 加油!
註:當然跨國軟體公司一定會有專門做翻譯的部門, 只是 IS 單位是無法去使用這些資源的, 因為她們只服務產品線的軟體, 所以常要跟各國的對應窗口聯繫, 完成該項工作
string 在某些語言.如 .NET 他的特性介於Value Type 跟 Reference Type這種很抽象的特性.
這種特性很奇怪.我也不要去別解釋.
如果大量對string 做運算的話.效能會很差.
比如:
string a="One ";
a+="Two ";
a+="Three ";
.
.
.
這總效能會很差.
a雖然只是一個變數.但在.NET他其實是不斷的配置a這個變數.
所以改成
StringBuilder sb=new StringBuilder();
sb.Appled("One ");
sb.Appled("Two ");
sb.Appled("Tree ");
sb.Appled("Four ");
.
.
.
對系統效能會比較好.
以前剛學C的時侯
老是忘了在最後面加'\0'
然後一碰到printf字串
畫面就#@#!$!#@!#@$(嘟嘟..)
蛋掉了....Orz