判断字符串中的字符是否全都不同(字符类算法)
2015-09-07 22:42
267 查看
判断字符串中的字符是否全都不同?
有两种方法可以实现:第一种就是遍历字符数组,比较字符
第二种就是将字符转化为ASCII码,ascII码理论上只有256个字符 如果字符长度大于256那么,必定是会有重复的了,如果小于256,然后用数组来匹配。
java实现如下:
package day01; /* * 判断字符串中的字符是否全都不同 */ public class JudgeUniqueString { public static void main(String[] args) { String a = "1v2asdfgh"; System.out.println(judgeUnique1(a) ? "全都不同" : "有相同的"); System.out.println(judgeUnique2(a) ? "全都不同" : "有相同的"); a = "11v2asdfgh"; System.out.println(judgeUnique1(a) ? "全都不同" : "有相同的"); System.out.println(judgeUnique2(a) ? "全都不同" : "有相同的"); } public static boolean judgeUnique1(String str) { for (int i = 0; i < str.length(); i++) { for (int j = i + 1; j < str.length(); j++) { if (str.charAt(i) == str.charAt(j)) { return false; } } } return true; } public static boolean judgeUnique2(String str) { /* * ascII码理论上只有256个字符 如果字符长度大于256那么,必定是会有重复的了 */ if (str.length() > 256) { return false; } /* * boolean数组初始值全为false */ boolean[] b = new boolean[256]; for (int i = 0; i < str.length(); i++) {// 遍历字符 int c = str.charAt(i);// 将字符转化为ascII码 if (b[c]) {// return false; } b[c] = true; } return true; } }
相关文章推荐
- HttpServlet
- SignalR实现服务器与客户端的实时通信
- java学习之四
- 两个质量部女娃引发的喷发:绩效考核啊考核!
- c++ 设计模式(三)singleton 单例模式
- uva 10917 - Walk Through the Forest(最短路+记忆化)
- linux下使用usb总线实现类似于tcp/ip的server/client通信
- Yum Error Another app is currently holding the yum lock; waiting for it to exit
- HDOJ 4277 USACO ORZ 搜索+剪枝
- codeforces 21A Jabber ID
- 数组和集合小总结
- print操作及重定向
- 给grub加密码
- 函数和方法
- SQL 中关于groupby的信息
- WCFRestFull空框架,套上业务逻辑实现就可以用了
- iOS开发 - 汉字转拼音
- uva 442 矩阵链乘
- Qt 信号槽机制解析二 分析原代码
- hdu 5001 Walk(概率dp+搜索,矩阵快速幂)