本篇博文将给大家带来几个判断一个字符串中的字符是否都只出现一次的方法。
方法一:
首先将字符串转换成字符数组(char[]), 循环迭代char数组,对于每一个字符c,如果其第一次出现的索引和最后一个出现的索引是不一样的,那么我们可以认为该元素出现多次。
class="java">public static boolean isUniqueChars(String str) { char[] chars = str.toCharArray(); for (char c : chars) { if (str.indexOf(c) != str.lastIndexOf(c)) { return false; } } return true; }
?
方法二:
首先将字符串转换成字符数组 (char[]), 然后调用Arrays.sort对字符数组排序。接下来只要判断charArray[i] 是否与charArray[i+1]相等
public static boolean isUniqueChars2(String str) { char[] chars = str.toCharArray(); Arrays.sort(chars);// 先排序 int len = chars.length; for (int i = 0; i < len - 1; ++i) { if (chars[i] == chars[i + 1]) { return false; } } return true; }
?
方法三:
方法三参考自http://stackoverflow.com/questions/21057827/determining-a-string-has-all-unique-characters-without-using-additional-data-str
public static boolean isUniqueChars(String str) { int checker = 0; for (int i = 0; i < str.length(); ++i) { int val = str.charAt(i) - 'a'; if ((checker & (1 << val)) > 0) return false; checker |= (1 << val); } return true; }
?
原文地址?http://thecodesample.com/?p=951
更多例子请访问?http://thecodesample.com/
?