如何检查String是否在Java中具有所有唯一字符
在本文中,我们将了解String是否具有所有唯一字符。
有多种方法可以查找String是否具有所有唯一字符。
通过使用HashSet:
- 您可以将每个字符添加到 哈希集.
- 如果HashSet’s 加方法返回false,那么它没有所有唯一字符。
爪哇程序使用HashSet检查String是否具有所有唯一字符:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
包 组织.Arpit.爪哇2blog; 上市 类 串AllUniqueCharMain { 上市 静态的 虚空 主要(串[] args) { 系统.出.打印(“ 爪哇2blog具有所有唯一的字符:”+ 拥有AllUniqueChars(“ 爪哇2blog”)); 系统.出.打印(“苹果具有所有独特的特征:”+ 拥有AllUniqueChars(“苹果”)); 系统.出.打印(“索引具有所有唯一字符:”+ 拥有AllUniqueChars(“指数”)); 系统.出.打印(“世界具有所有独特的特征:”+ 拥有AllUniqueChars(“世界”)); } 上市 静态的 布尔值 拥有AllUniqueChars (串 字) { 哈希集 alphaSet=新 哈希集(); 对于(整型 指数=0;指数 < 字.长度(); 指数 ++) { 烧焦 c =字.字符(指数); //如果Hashset的add方法返回false,则意味着它已经存在于HashSet中 如果 (!alphaSet.加(c)) 返回 假; } 返回 真正; } } |
当您运行上述程序时,将获得以下输出:
1 2 3 4 5 6 |
爪哇2blog 拥有 所有 独特 字符 : 假 苹果 拥有 所有 独特 字符 : 假 指数 拥有 所有 独特 字符 : 真正 世界 拥有 所有 独特 字符 : 真正 |
通过使用indexOf和lastIndexOf方法。
如果 指数 和 lastIndexOf 为字符返回相同的值,然后在该字符串中不再重复。
爪哇程序使用indexOf和lastIndexOf检查String是否具有所有唯一字符:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
包 组织.Arpit.爪哇2blog; 上市 类 串AllUniqueCharMain { 上市 静态的 虚空 主要(串[] args) { 系统.出.打印(“ 爪哇2blog具有所有唯一的字符:”+ 拥有AllUniqueChars(“ 爪哇2blog”)); 系统.出.打印(“苹果具有所有独特的特征:”+ 拥有AllUniqueChars(“苹果”)); 系统.出.打印(“索引具有所有唯一字符:”+ 拥有AllUniqueChars(“指数”)); 系统.出.打印(“世界具有所有独特的特征:”+ 拥有AllUniqueChars(“世界”)); } 上市 静态的 布尔值 拥有AllUniqueChars (串 字) { 对于(整型 指数=0;指数 < 字.长度(); 指数 ++) { 烧焦 c =字.字符(指数); 如果 (字.指数(c)!=字.lastIndexOf(c)) 返回 假; } 返回 真正; } } |
当您运行上述程序时,将获得以下输出:
1 2 3 4 5 6 |
爪哇2blog 拥有 所有 独特 字符 : 假 苹果 拥有 所有 独特 字符 : 假 指数 拥有 所有 独特 字符 : 真正 世界 拥有 所有 独特 字符 : 真正 |
通过使用字符的ascii值
这是最有效的。
方法:
- 创建一个长度为26的布尔数组
- 将char转换为大写并获取其ascii值
- 将64减去ascii值以获得0到25之间的索引。
- 如果不重复字符,则布尔数组中应该为false
爪哇程序检查String是否具有所有唯一字符:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
包 组织.Arpit.爪哇2blog; 上市 类 串AllUniqueCharMain { 上市 静态的 虚空 主要(串[] args) { 系统.出.打印(“ 爪哇2blog具有所有唯一的字符:”+ 拥有AllUniqueChars(“ 爪哇2blog”)); 系统.出.打印(“苹果具有所有独特的特征:”+ 拥有AllUniqueChars(“苹果”)); 系统.出.打印(“索引具有所有唯一字符:”+ 拥有AllUniqueChars(“指数”)); 系统.出.打印(“世界具有所有独特的特征:”+ 拥有AllUniqueChars(“世界”)); } 上市 静态的 布尔值 拥有AllUniqueChars (串 字) { 布尔值[] 烧焦Map = 新 布尔值[26]; 对于(整型 指数=0;指数 < 字.长度(); 指数 ++) { //我们将char的ascii值减去64,所以我们得到了所有索引 //从0到25。 整型 密码 = (整型) 字.至大写().字符(指数) - 64; //如果不存在char,则该索引应为false 如果 (!烧焦Map[密码]) 烧焦Map[密码] = 真正; 其他 返回 假; } 返回 真正; } } |
当您运行上述程序时,将获得以下输出:
1 2 3 4 5 6 |
爪哇2blog 拥有 所有 独特 字符 : 假 苹果 拥有 所有 独特 字符 : 假 指数 拥有 所有 独特 字符 : 真正 世界 拥有 所有 独特 字符 : 真正 |