找出字符串中第一个只出现一次的字符

找出字符串中第一个只出现一次的字符

package my;

import java.util.HashMap;
//问题:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,
//并返回它的位置, 如果没有则返回 -1(需要区分大小写).

public class FindFirstStringSolution {
    int  findFirstStr(String str){
        if(str.length() ==0 ||str == null){
            return -1;
        }
        HashMap<Character, Integer> map = new HashMap<>();
        for(int i=0 ; i < str.length() ; i++){
            char c= str.charAt(i);
            if(map.containsKey(str.charAt(i))){
                map.put(c,map.get(c)+1);
            }else{
                map.put(c,1);
            }
        }

       for(int j = 0 ; j<str.length(); j++){
           if(map.get(str.charAt(j))== 1){
               System.out.println(str.charAt(j));
               return j;
           }
       }
       return -1;
    }
    public static void main(String[] args){
        String str ="aabbcf33";
        int n = new FindFirstStringSolution().findFirstStr(str);
        System.out.println(n);
    }
}
原文地址:https://www.cnblogs.com/goodtest2018/p/13664257.html