当前位置:首页 > 开发 > 编程语言 > Java > 正文

java-63-在字符串中删除特定的字符

发表于: 2012-03-05   作者:bylijinnan   来源:转载   浏览:
摘要: public class DeleteSpecificChars { /** * Q 63 在字符串中删除特定的字符 * 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 * 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” */ public static voi

public class DeleteSpecificChars {

	/**
	 * Q 63 在字符串中删除特定的字符
	 * 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
	 * 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
	 */
	public static void main(String[] args) {
		String strSource="They are students";
		String strDelete="aeiou";
		String result=deleteSpecificChars(strSource,strDelete);
		System.out.println(result);
	}

	/*
	 * 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
	}
}

java-63-在字符串中删除特定的字符

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
已知输入字符串,要求输入指定要删除已知字符串中的具体字符。 比如说:已知字符串为thankyou,指定
转载请注明出处:http://blog.csdn.net/ns_code/article/details/27110873 剑指offer上的字符串相关
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: 沈远宏 * 完成日
Java 字符串 进制转换 工具 源码 刚写了小工具,丢到blog来充数,很小的jar,加上源码才12KB…… 没
Java 字符串 进制转换 工具 源码 刚写了小工具,丢到blog来充数,很小的jar,加上源码才12KB…… 没
Java 字符串 进制转换 工具 源码 刚写了小工具,丢到blog来充数,很小的jar,加上源码才12KB…… 没
Java 字符串 进制转换 工具 源码 刚写了小工具,丢到blog来充数,很小的jar,加上源码才12KB…… 没
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: 沈远宏 * 完成日
比如说删除字符串certainly中的第5个字符i,变成certanly。 具体实现如下: 首先:主函数框架如下:
之前有一篇写过删除字符串中的# 这篇回顾一下: 删除字符串中的* 步骤如下: #include <stdio.h&
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号