import java.util.*;
import java.util.Map.Entry;
public int FirstNotRepeatingChar(String str) {
if(str==null||str.equals("")||str.length()==1)
return -1;
Map<Character,Integer> map = new LinkedHashMap<Character, Integer>();
for(int i=0;i<str.length();i++){
char c = str.charAt(i);//key
if(!map.containsKey(c)){//如果不存在key
map.put(c,i);
}else{//修改值,索引变为-1的表示已经出现过一次了
map.put(c,-1);
}
}
//利用LinkedHashMap的特性按插入的顺序从头开始找索引不是负数的值,并返回
for(Entry<Character,Integer> entry:map.entrySet()){
if(entry.getValue()>=0)
return entry.getValue();
}
//没有找到说明都重复,返回-1
return -1;
}