思路:用list集合来保存,循环遍历输入字符串,若list中包含该值就删除,否则就加入集合中。即:集合中最终保存的是只出现过一次的字符。
package offer;
import java.util.ArrayList;
public class firstNotRepeatingChar {
public static int FirstNotRepeatingChar(String str) {
ArrayList<Character> list=new ArrayList<>();
for(int i=0;i<str.length();i++){
char ch=str.charAt(i);
if(!list.contains(ch)){
list.add(Character.valueOf(ch));
}
else{
list.remove(Character.valueOf(ch));
}
}
if(list==null) return 0;
return str.indexOf(list.get(0));
}
public static void main(String[] args) {
String s="awerawrggo";
int result=firstNotRepeatingChar.FirstNotRepeatingChar(s);
System.out.println(result);
}
}