package com.anuragkapur.pie.arraysandstrings;

import java.util.HashMap;
import java.util.Map;

/**
 * @author anuragkapur
 */
public class FirstNonRepeatedChar {

    Map<Integer, Integer> charTracker = new HashMap<>();

    public String find(String str) {

        int i = 0;

        while (i < str.length()) {

            int codePoint = str.codePointAt(i);

            if (charTracker.containsKey(codePoint)) {
                if (charTracker.get(codePoint) == 1) {
                    charTracker.put(codePoint, 2);
                }
                // if more than one repetition, ignore updating. We only care about finding if repetitions are 0, 1
                // or more than 1
            } else {
                charTracker.put(codePoint, 1);
            }

            i += Character.charCount(codePoint);
        }

        i = 0;
        while (i < str.length()) {
            int singleChr = str.codePointAt(i);

            if (charTracker.get(singleChr) == 1) {
                return new String(Character.toChars(singleChr));
            }

            i += Character.charCount(singleChr);
        }

        return null;
    }
}

package com.anuragkapur.pie.arraysandstrings;

import java.util.HashMap;
import java.util.Map;

/**
 * @author anuragkapur
 */
public class FirstNonRepeatedChar {

    Map<Integer, Integer> charTracker = new HashMap<>();

    public String find(String str) {

        int i = 0;

        while (i < str.length()) {

            int codePoint = str.codePointAt(i);

            if (charTracker.containsKey(codePoint)) {
                if (charTracker.get(codePoint) == 1) {
                    charTracker.put(codePoint, 2);
                }
                // if more than one repetition, ignore updating. We only care about finding if repetitions are 0, 1
                // or more than 1
            } else {
                charTracker.put(codePoint, 1);
            }

            i += Character.charCount(codePoint);
        }

        i = 0;
        while (i < str.length()) {
            int codePoint = str.codePointAt(i);

            if (charTracker.get(codePoint) == 1) {
                return new String(Character.toChars(codePoint));
            }

            i += Character.charCount(codePoint);
        }

        return null;
    }
}

Refactor variable name