判断一个字符串中的字符是否都只出现一次_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 判断一个字符串中的字符是否都只出现一次

判断一个字符串中的字符是否都只出现一次

 2014/11/25 15:53:07  MouseLearnJava  程序员俱乐部  我要评论(0)
  • 摘要:本篇博文将给大家带来几个判断一个字符串中的字符是否都只出现一次的方法。方法一:首先将字符串转换成字符数组(char[]),循环迭代char数组,对于每一个字符c,如果其第一次出现的索引和最后一个出现的索引是不一样的,那么我们可以认为该元素出现多次。publicstaticbooleanisUniqueChars(Stringstr){char[]chars=str.toCharArray();for(charc:chars){if(str.indexOf(c)!=str.lastIndexOf
  • 标签:一个 字符串

本篇博文将给大家带来几个判断一个字符串中的字符是否都只出现一次的方法。

方法一:

首先将字符串转换成字符数组(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/

?

发表评论
用户名: 匿名