找出字符串中第一个只出现一次的字符
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); } }