import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MyInterview {
public static void main (String[] args){
MyInterview myInterview = new MyInterview();
try{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("\n\t Please, enter a string to test algorithm ");
System.out.print("Input String = ");
String inputString = in.readLine();
myInterview.findFirstNonRepeatingChar(inputString);
}catch (Exception e) {
e.printStackTrace();
}
}
private char findFirstNonRepeatingChar(String str){
String nextSearcheableStr = str;
StringBuilder sb = new StringBuilder(nextSearcheableStr);
StringBuilder sb2 = null;
char c = 0;
int index = 0;
while( sb.length()> 1){
if (index > 0){
sb = sb2;
}
c = sb.charAt(index);
if(!isCharRepeated(sb.toString(),c,index)){
System.out.println("First non recurring charactor is :" + c);
return c;
}
else{
index = index +1;
str = str.replace(c,'*').trim();
sb2 = new StringBuilder(str.replace(c,'*').trim());
}
}
return c;
}
public boolean isCharRepeated(String str, char c, int x){
boolean isRepeated = false;
char[] cc = str.substring(x,str.length()).toCharArray();
for (int i = 1; i < cc.length; i++) {
if (cc[i]==c | c == '*'){
isRepeated = true;
return isRepeated;
}
}
return isRepeated;
}
}