|
首頁 | 討論區 | 最新話題 | 搜尋 | XML | 登入 |
![]() |
Blueimp » 列出所有討論區 » 討論區: JavaTech |
![]() |
|
此話題中所有文章數: 4 [ 話題狀態: 一般 ] | |
|
過濾掉不要的字元package test.fin.data; * * * Copyright: Copyright (c) 2005 * Company: * @author S.Y.Hung * @version 1.1 */ public class StringWorking { public StringWorking() { } /** * 過濾掉不要的字元。 * * @param buffer StringBuffer 暫存用,也可傳 null 進來。 * @param str String 原始字串 * @param ch char 要被過濾的字元 * @return String 過濾後的結果 * @author S.Y.Hung * @version v.1.1 */ private String trimChar(StringBuffer buffer,String str,char ch) { if ( str == null ) { return null; } if ( str.length() == 0 ) { return ""; } if ( buffer == null ) { buffer = new StringBuffer(str); } else { buffer.setLength(0); buffer.append(str); } // int indexOfChar = str.indexOf(ch); if ( indexOfChar >= 0 ) { buffer = buffer.deleteCharAt(indexOfChar); } String strTemp = buffer.toString(); if ( strTemp.indexOf(ch) >= 0 ) { return this.trimChar(buffer,strTemp,ch); } else { return buffer.toString(); } } /** * 過濾跳行字元。 * * @param str 原始字元。 * @return 過濾後的字元。 * @author S.Y.Hung * @version v.1.1 */ private String trimCRLF(String str) { StringBuffer buffer = new StringBuffer(); str = this.trimChar(buffer,str,'\r'); str = this.trimChar(buffer,str,'\n'); return str; } /* public static void main(String[] args) { StringWorking test = new StringWorking(); StringBuffer buffer = new StringBuffer(); System.out.println(test.trimCRLF("aaaa123456")); System.out.println(test.trimCRLF("a\r\naaa123456")); System.out.println(test.trimCRLF("aa\raa123456")); System.out.println(test.trimCRLF("aaa\na123456")); System.out.println(test.trimCRLF("a\r\naaa1\r\n23456")); System.out.println(test.trimChar(buffer,"aaaa123456",'a')); System.out.println(test.trimChar(buffer,"aaaa123456",'1')); } //*/ } ---------------------------------------- [編輯文章 3 次, 最後修改: Moonnight 於 2005/9/7 上午 10:41:30] |
|||
|
Re: 過濾掉不要的字元如果你要過濾的是 char 直覺上我覺得 StringBuffer 不是最好的選擇,應該轉為 char[] 處理,你的程式會更簡潔有力,說不定效能還會提高。既然都要用 StringBuffer 我建議與其另外寫一個新方法,不如看看當時我留在耀瑄套件的程式 DataAnalyisi.replace() 的方法,搞不好不用改直接丟空字串進去就可以達到相同的功能,這樣一來可以濾掉的不限於字元,一串字都沒問題。 因為在等 DVD 燒好無聊上來晃,改天我再證實以上的假設... ![]() ---------------------------------------- 支持小惡魔 BTC : 19tn3RnCuwZVukXAwyhDWZD4uBgUZoGJPx LTC : LTFa17pSvvoe3aU5jbmfcmEpo1xuGa9XeA 知識跟八卦一樣,越多人知道越有價值;知識最好的備份方法,散播! 藍色小惡魔(林永傑): 臉書 |
|||
|
Re: 過濾掉不要的字元用 char[] 或許能夠更有效率。不過當時因為手邊沒有其他 libs , 就考慮用 StringBuffer 。 可以省掉一些 search 和 remove char 的開發。 |
|||
|
Re: 過濾掉不要的字元我也做了一個簡單的測試public String trimSymbol(String str, char Symbol[]) { StringBuilder sb = new StringBuilder(); sb = sb.append(str); int a =Symbol.length; int b ; for (int k = 0; k < a; k++) { b = sb.toString().indexOf(Symbol[k]); sb.deleteCharAt(b); } return sb.toString(); } public static void main(String[] args) { trimSymbol t = new trimSymbol(); char Symbol[] ={',','?'}; System.out.println(t.trimSymbol("123,2?2",Symbol)); } ---------------------------------------- 熊爸天下名言: 學習要如倒吃甘蔗,將來一定會苦盡甘來 ---------------------------------------- [編輯文章 1 次, 最後修改: jimmy 於 2006/6/30 下午 03:10:28] |
|||
|