一道面试题:从一个字符串中找出第一个不重复字符;比如对于字符串abbbccdefafgg,其中d、e只出现一次,只需要找出d(第一个出现的不重复字符)即可 。 import java.util.HashMap; public class NoDuplicateChar0 { /** * @param args */ public static char find(String s) { int i; HashMap<Character, Integer> map = new HashMap<Character, Integer>(); for (i = 0; i < s.length(); i++) { char c = s.charAt(i); Integer v = map.get(c); if (v == null) { map.put(c, 1); } else { map.put(c, v.intValue() + 1); } } for (i = 0; i < s.length(); i++) { int v = map.get(s.charAt(i)); if (v == 1) { break; } } if (i >= s.length()) { System.out.println("无不重复字符"); return ' '; } return s.charAt(i); } public static void main(String[] args) { // TODO Auto-generated method stub String s = "abbbccdefafgg"; String t = "aabbccddeefff"; System.out.println(find(s)); System.out.println(find(t)); } }