importjava.util.LinkedHashMap;
publicclass Q351从字符串1中删除字符串2中出现的字符 {
/**
* 题目:从字符串1中删除字符串2中出现的字符
* 题目说明:定义一个函数,输入两个字符串,从第一个字符串中删除在第二个字符串中出现过的所有字符。例如字符串1为“We are student.”中删除字符串2“aeiou”中出现的字符。结果为“W r stdnts."
* 解题思路:创建一个用数组实现的简单哈希表来存储第二个字符串。如果字符没有出现在字符串1中,则将字符复制到新的数字中并打印。
*/
publicstatic void main(String[] args) {
Q351从字符串1中删除字符串2中出现的字符 test = new Q351从字符串1中删除字符串2中出现的字符();
test.deleteCharacterFromString("We are student","aeiou");
}
publicvoid deleteCharacterFromString(Stringstr1, String str2){
if(str1 ==null || str2 == null){
return ;
}
char[] strChar1 = str1.toCharArray();//字符串1
char[] strChar2 = str2.toCharArray();//字符串2
char[] strChar =new char[strChar1.length];//存放删除后的字符
int j = 0;
LinkedHashMap<Character, Integer>hashMap =new LinkedHashMap<Character,Integer>();
for(char i : strChar2){//字符串2中的字符放到哈希表中
hashMap.put(i, 1);
}
for(int i = 0; i < strChar1.length ; i++){
if(!hashMap.containsKey(strChar1[i])){//如果字符串1中不包含字符串2中的字符,则将字符复制到strChar[]中
strChar[j++] = strChar1[i];
}
}
System.out.print(strChar);
}
}
Q351:从字符串1中删除字符串2中出现的字符
最新推荐文章于 2023-06-07 19:31:56 发布