Java面试宝典——如何删除字符串中重复的字符 + 统计字符串中单词个数

package string.demos;

import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;

/** 
 * @author wyl
 * @time 2018年7月9日上午10:15:59
 * 删除字符串中重复的字符
 * 方法:
 * ①“蛮力”法
 * 		把字符串看成一个字符数组,对该数组使用双重遍历,
 * 		如果发现重复字符,置为 \0;
 * 		再把 \0字符去掉
 * ②HashTable  ③set集合
 */
public class Test3 {

	public static String removeDup(String s){
		char[] cs=s.toCharArray();
		for(int i=0;i table=new Hashtable<>();
		for(int i=0;i it=table.keySet().iterator();it.hasNext();){
			Character key=it.next();
			res+=key;
		}
		return res;
	}
	
	
	public static String removeDup3(String s){
		char[] cs=s.toCharArray();
		String res="";
		Set set=new HashSet<>();
		for(int i=0;i iterator=set.iterator();
		while(iterator.hasNext()){
			res+=iterator.next();
		}
		return res;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("方法一");
		String str="abcaabcd";
		str=removeDup(str);
		System.out.println(str);
		
		System.out.println("方法二");
		String str2="abcaabcd";
		str2=removeDup2(str2);
		System.out.println(str2);
		
		System.out.println("方法三");
		String str3="abcaabcd";
		str3=removeDup3(str3);
		System.out.println(str3);
	}

}
结果:
方法一
abcd
方法二
badc
方法三
abcd
方法二,得出的结果与方法一不同~~?????


统计一行字符串中有多少个单词?

字符串分割成字符数组;
对每个数组计算长度,若长度≠0,则为单词


package string.demos;
/** 
 * @author wyl
 * @time 2018年7月9日上午10:50:28
 */
public class Test4 {

	public static int countWords(String s){
		String[] ss=s.split(" ");
		int cnt=0;
		for(int i=0;i



你可能感兴趣的:(Java)