获取不重复的字符串

21 阅读1分钟
/**
 * 获取不重复的字符串
 *  aabbc->abc
 * @param srcStr
 * @return
 */
public static String getSingleCharStr(String srcStr){
    if (srcStr==null){
        return null;
    }
    if (srcStr.isEmpty()){
        return null;
    }
    String trim = srcStr.trim();
    Map<Character, Integer> characterIntegerHashMap = new LinkedHashMap<>();
    for (int i = 0; i < trim.length(); i++) {
        char c = trim.charAt(i);
        if (characterIntegerHashMap.containsKey(c)){
            characterIntegerHashMap.put(c,characterIntegerHashMap.get(c)+1);
        }else {
            characterIntegerHashMap.put(c,1);
        }
    }
    ArrayList<CustomerStr> customerStrs = new ArrayList<>();
    characterIntegerHashMap.forEach((character, integer) ->{
        CustomerStr customerStr = new CustomerStr();
        customerStr.setId(UUID.randomUUID().toString());
        customerStr.setCharTemp(character);
        customerStr.setCharCout(integer);
        customerStrs.add(customerStr);
    });
    StringBuilder stringBuilder = new StringBuilder();
    customerStrs.forEach(e->{
        stringBuilder.append(e.getCharTemp());
    });
    return stringBuilder.toString();
}
public static String getSingleCharStr1(String srcStr){
    if (srcStr==null){
        return null;
    }
    if (srcStr.isEmpty()){
        return null;
    }
    String trim = srcStr.trim();
    Set<Character> characters = new LinkedHashSet<>();
    for (int i = 0; i < trim.length(); i++) {
        characters.add(trim.charAt(i));
    }
    StringBuilder stringBuilder = new StringBuilder();
    characters.forEach(e->{
        stringBuilder.append(e);
    });
    return stringBuilder.toString();
}
class CustomerStr{
    private String id;
    private Character charTemp;
    private Integer charCout;
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Character getCharTemp() {
        return charTemp;
    }

    public void setCharTemp(Character charTemp) {
        this.charTemp = charTemp;
    }

    public Integer getCharCout() {
        return charCout;
    }

    public void setCharCout(Integer charCout) {
        this.charCout = charCout;
    }
}