Java語(yǔ)言常見(jiàn)字符串注意事項(xiàng)
取出某個(gè)字符串前后的空格
如現(xiàn)在一個(gè)進(jìn)銷存管理系統(tǒng)中有一個(gè)產(chǎn)品管理的窗口。在這個(gè)窗口中有產(chǎn)品編號(hào)、序列號(hào)等信息。為了這些信息的準(zhǔn)確,用戶要求在數(shù)據(jù)保存的時(shí)候,產(chǎn)品編號(hào)、序列號(hào)等字段前后不能夠有空格。因?yàn)楹竺娴漠a(chǎn)品圖片地址等信息都是根據(jù)產(chǎn)品編號(hào)來(lái)自動(dòng)編制的。如果產(chǎn)品編號(hào)后面有空格,則產(chǎn)品圖片的URL地址就會(huì)出現(xiàn)問(wèn)題(產(chǎn)品圖片沒(méi)有放置在數(shù)據(jù)庫(kù)中,而是放在網(wǎng)絡(luò)的一個(gè)文件服務(wù)器中,通過(guò)URL地址來(lái)打開(kāi)文件服務(wù)器上對(duì)應(yīng)的圖片)。如果這個(gè)URL地址出現(xiàn)問(wèn)題的話,顯然圖片不能夠正常打開(kāi)。
但是在實(shí)際工作中,有不少用戶在輸入這個(gè)產(chǎn)品編號(hào)的時(shí)候,會(huì)不經(jīng)意的在編號(hào)前面或者后面加入幾個(gè)空格,從而導(dǎo)致URL地址跟實(shí)際圖片的地址不一樣。還有一些用戶,就是可能直接從Excle等表格中復(fù)制編號(hào),而這些工具中有與格式控制或者其他的一些原因,往往包含一些隱性的空格。如果直接從這些工具中復(fù)制到應(yīng)用軟件中,那么后面就會(huì)自動(dòng)插入空格。為了***程度的編碼這種錯(cuò)誤,程序開(kāi)發(fā)人員可能希望在將Java語(yǔ)言常見(jiàn)字符串中的內(nèi)容保存到數(shù)據(jù)庫(kù)中的時(shí)候,能夠先對(duì)其進(jìn)行過(guò)濾。如果發(fā)現(xiàn)Java語(yǔ)言常見(jiàn)字符串前后有空格的話,則先去除空格,然后再將其保存到數(shù)據(jù)庫(kù)中。如此的話,就可以保證產(chǎn)品編號(hào)前后沒(méi)有空格字符。雖然這也可以在數(shù)據(jù)庫(kù)中完成,但是處理一起比較麻煩,筆者還是建議在應(yīng)用程序?qū)用鎸⑦@個(gè)問(wèn)題解決了。
在Java語(yǔ)言平臺(tái)中,恰好有現(xiàn)成的處理方式。Java語(yǔ)言包含很多的Java語(yǔ)言常見(jiàn)字符串處理函數(shù)或者方法,trim()方法就是其中一種。這個(gè)方法可以忽略輸入字符串的前導(dǎo)空格和尾部空格,并最終返回一個(gè)去除了前后空格的字符串的副本。簡(jiǎn)單的說(shuō),這個(gè)方法就是判斷某個(gè)字符串是否有前導(dǎo)空格和尾部空格。如果有的話,則就把他們?nèi)コ?,然后返回沒(méi)有包含尾部空格和頭部空格的字符串?dāng)?shù)據(jù)。在使用這個(gè)方法來(lái)過(guò)濾空格字符,需要注意三個(gè)問(wèn)題。一是這個(gè)方法只會(huì)取出前導(dǎo)空格和尾部空額,而不會(huì)去除中間的空格。二是通常情況下,tab鍵也會(huì)形成一連串的空格字符,這些空格trim()方法也會(huì)過(guò)濾掉。三是在使用這個(gè)方法的時(shí)候,一定要有用戶明示的說(shuō)明。也就是說(shuō),某些情況下用戶可能需要存在這些空格。為了提高應(yīng)用程序的靈活性,筆者的意見(jiàn)是在窗口或者單據(jù)的設(shè)計(jì)上,設(shè)置一個(gè)動(dòng)態(tài)的參數(shù)。由用戶來(lái)設(shè)置是否需要在保存時(shí)去除空格。如此的話,可以提高應(yīng)用程序的靈活性。當(dāng)用戶需要不同的需求時(shí),不需要通過(guò)二次開(kāi)發(fā)來(lái)完成。
【編輯推薦】