快速查找字符串中首个重复字母算法

找出字符串中出现的首个重复字母

例“abncdbmn”,首个重复字母为b

/**
 * 
 */
package com.tao.bao;

import java.util.HashMap;

/**
 * @author moon
 *
 */
public class StringFindSame {

	/**
	 * @param args,
	 */
         //类似冒泡排序,一个一个查询
        public void findSameChar(char[] str){
		int length = str.length;
		for(int i = 0;i<length;i++)
			for(int j=i+1;j<length;j++)
			{
				if(str[i]==str[j]){
					System.out.println("-----"+str[i]);
					break;
				}
			}
	}
	//利用java特性,map中key值不可以重复
	public void findSameMap(char[] str){
		HashMap<Character, Integer> map = new HashMap<Character, Integer>();
		for(int i=0;i<str.length;i++){
			if(map.containsKey(str[i])){
				System.out.println("-----"+str[i]);
				break;
			}else
			{
				map.put(Character.valueOf(str[i]), Integer.valueOf(1));
			}
		}
	}
	
	public static void main(String[] args) {
		String str="adcbd";
		char findStr[] = str.toCharArray();
		
		StringFindSame same = new StringFindSame();
		//same.findSameChar(findStr);
		same.findSameMap(findStr);
	}

}

你可能感兴趣的:(字符串)