Java Program to find first non-repeated character in string
In this tutorial, we will see how to find the first non-repeated character in a given string in java programming language. There are many approaches to achieve this.
We can use LinkedHashMap to find the first non-repeated character in a string. Following is the algorithm:
- We will iterate over the length of string, extracting characters.
- Put this character in LinkedHashMap with its count. If already there, increment by 1.
- Get the count from LinkedHashMap. If the count is 1 return the character.
An important point to remember is that LinkedHashMap maintains the insertion order. Hence, we will be able to retrieve the first nonrepeating character.
Java Code:
import java.text.*;
import java.util.*;
import java.util.Map.Entry;
public class Main {
public static void main(String[] args) {
System.out.println("In String analogy is : "+ getCharacter("analogy"));
System.out.println("In String difficult is : "+ getCharacter("difficult"));
}
public static Character getCharacter(String s) {
Map<Character, Integer> count = new LinkedHashMap<Character, Integer>();
int lenString=s.length();
for (int i = 0; i < lenString - 1; i++) {
Character c = s.charAt(i);
if (!count.containsKey(c)) {
count.put(c, 1);
} else {
count.put(c, count.get(c) + 1);
}
}
for (Entry<Character, Integer> e : count.entrySet()) {
if (e.getValue() == 1)
return e.getKey();
}
return null;
}
}Another approach to finding the first non repeating character is to use indexOf() and lastIndexOf() inbuilt methods.
Output:
First non repeating character for analogy is : n First non repeating character for difficult is : d
Also read,
Decimal to Binary conversion in JAVA
Leave a Reply