public class IsStringRepeat {
/**
* 判断字符串是否重复,假设字符串只有ASCII码,字符最多256个
* @param str
*/
private static boolean isStringRepeatAsc(String str){
if (str.length() > 256){
return false;
}
int[] strCount = new int[256];
for (int i = 0; i< str.length(); i++) {
int asc_index = (int)str.charAt(i);
if (strCount[asc_index] != 0){
return false;
}
strCount[asc_index] += 1;
}
return true;
}
/**
* 假设字符串时unicode码,字符串很多,无法通过长度判断
* @param str
*/
private static boolean isStringRepeatUnicode(String str){
if (null == str || "" == str){
return false;
}
for (int i=0; i<str.length()-1;i++){
for (int j=i+1;j<str.length();j++){
if (str.charAt(i) == str.charAt(j)){
return false;
}
}
}
return true;
}
/**
*
* @param str
* @return
*/
private static boolean isStringRepeatUnicode2(String str){
if (null == str || "" == str){
return false;
}
char[] strArray = str.toCharArray();
Arrays.sort(strArray);
for (int i=0;i<strArray.length-1;i++){
if (strArray[i] == strArray[i+1]){
return false;
}
}
return true;
}
public static void main(String[] args) {
boolean result1 = isStringRepeatAsc("123456789 ert");
boolean result2 = isStringRepeatUnicode2("123 ewqq");
}
}
判断字符串是否包含重复字符 java
最新推荐文章于 2025-10-11 20:07:45 发布
本文介绍两种检查字符串中是否存在重复字符的算法。一种适用于ASCII字符集,利用数组计数实现;另一种针对Unicode字符集,通过排序或双层循环比较来完成。文章提供了具体的Java代码实现,展示了不同场景下字符串重复检查的高效解决方案。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Langchain-Chatchat
AI应用
Langchain
Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

2210

被折叠的 条评论
为什么被折叠?



