java-63-在字符串中删除特定的字符 - 代码物语-Let code talk - ITeye技术网站
- /*
- * 1.use a 'hashtable' to record the letters to be delete
- * 2.use two pointers to shrink the source string:
- * replace the letter to delete with the following letter not to delete
- */
- public static String deleteSpecificChars(String strSource,String strDelete){
- char[] charSource=strSource.toCharArray();
- char[] charDelete=strDelete.toCharArray();
- int sLen=strSource.length();
- int dLen=strDelete.length();
- int[] exist=new int[256];
- for(int i=0;i<dLen;i++){
- char letter=charDelete[i];
- exist[letter]++;
- }
- int pSlow=0,pFast=0;
- while(pFast<sLen){
- char curLetter=charSource[pFast];
- if(exist[curLetter]==0){//should not delete
- charSource[pSlow]=charSource[pFast];
- pSlow++;
- }
- pFast++;
- }
- return new String(charSource,0,pSlow);//unlike c/c++,we can only form a string in this way
- }