![](https://csdnimg.cn/release/download_crawler_static/88737872/bg4.jpg)
5、判断字符是否唯一(开始面试真题集)
判断字符是否唯一: 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
方法一:利用 HashSet 集合唯一性。
public static boolean isUnique(String astr) {
int n = astr.length();
if(astr==null||n<=1){
return true;
}
HashSet<Character> hs = new HashSet<Character>();
for (Character c : astr.toCharArray()) {
hs.add(c);
}
System.out.println("hs="+hs.size()+";n="+n);
if(hs.size()==n){
return true;
}else{
return false;
}
}
方法二: 如果一个字符只出现一直,则 indexOf 和 lastIndexOf 的返回值一定是以一样的。
public static boolean isUnique2(String astr) {
if(astr==null||astr.length()<=1){
return true;
}
for (Character c:astr.toCharArray()){
if(astr.indexOf(c)!=astr.lastIndexOf(c)){
return false;
}
}
return true;
}
方法三:利用 replace 替换为空后做长度判断。
public static boolean isUnique3(String astr) {
if(astr==null||astr.length()<=1){
return true;
}
for (Character c:astr.toCharArray()){
astr.replaceAll(String.valueOf(c),"");
if(astr.indexOf(c)!=astr.lastIndexOf(c)){
return false;