题目:判断一个字符串中的所有字符是否都不相同。
思路:因为所有的字符对应的ASCLL值是不变的,我们只需要根据ASCLL码值去判断是否有相同的字符就行了。
具体实现:
package com.demo.equals.String;
public class UniqueString {
/**
* 判断一个字符串中的所有字符是否都不相同
* @param s:需要判断的字符串
* @return
*/
public static boolean judgeUnique(String s){
if(s.length()>256){
return false;
}
boolean[] b = new boolean[256];
for(int i=0; i<s.length(); i++){
//取到字符串中第i位字符所对应的ASCLL码值
int c = s.charAt(i);
//判断在数组b中是否已经存在
if(b[c]){
//如果存在则表示这个字符串中的所有字符是有相同的字符
return false;
}
//每一个不相同的字符的ASCLL码值在b数组中对应的一个索引
b[c] = true;
}
return true;
}
public static void main(String[] args) {
String s = "sss";
System.out.println(judgeUnique(s)?"全部都不相同":"有相同的");
}
}