「java生成不重复字符串」java给定一个字符串,找出不含有重复
今天给各位分享java生成不重复字符串的知识,其中也会对java给定一个字符串,找出不含有重复进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中,我想随机获取不重复的字符串?应该怎么办?
- 2、java 实现 一个字符串中不重复最长子串
- 3、java怎么生成6位不重复
- 4、java 生成不重复字符串
- 5、怎么样用java代码自动生成不重复的含有数字和字母的随机码
- 6、java如何生成不重复8位String类型字符串?
java中,我想随机获取不重复的字符串?应该怎么办?
1.先确定字符串的长度;
2.再确定字符串包括哪些字符;//这样可以确定字符的ASCII范围
3.然后就有很多方法去随机获取字符:
把字符存放在一个Map中的value中,如:map.put(1,"字符1");map.put(2,"字符2");
map.put(3,"字符3");一次类推,通过Math.random()*字符的个数,取整就可以得到key值,
map.get(key),value不为null,然后在map中删除这个key-value,可以设置map.put(key,null);
循环到字符串的长度为需要的长度。
具体一种方法的代码:
import java.util.HashMap;
import java.util.Map;
public class RandomStr {
public static void main(String[] args) {
for(int i=0; i 10; i++){//测试10次产生随机不重复字符串
generateRandomStr(5);
}
}
/**
* 产生不重复的随机字符串
* @param len 生成字符串的长度
* @return
*/
public static String generateRandomStr(int len){
String strRange = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//字符串范围,根据自己的需求确定
MapString, String tmp = new HashMapString, String();
for(int i=0; istrRange.length(); i++){
tmp.put(i+"",strRange.charAt(i)+"");
}
StringBuffer result=new StringBuffer();
for(int i=0; ilen; i++){
String key = (int)(Math.random()*(strRange.length()-i))+"";
result.append(tmp.get(key));
tmp.remove(key);
tmp.put(key, tmp.get((strRange.length()-i-1)+""));//拿最后一个字符填充删除的位置key-value
}
System.out.println(result);
return result.toString();
}
}
java 实现 一个字符串中不重复最长子串
这个函数的目的是求最长不重复子串,所谓不重复子串是指由某个字符串中相邻的N个字符组成,这个N内所有字符都是不重复的,最长是指这个N最大。如字符串"abcdefghiud",最长的不重复的子串为"abcdefghiu"
cursor里面存放字符的在字符串中的位置
lengAt[i]存放以字符string.charAt(i)结尾的最长子字符串的长度
max的目的就是确定这个最长,因为最开始可能找到的子串比以后找到的子串短,所以用max比较
java怎么生成6位不重复
描述不是很清晰,给你提供几段代码你看看咯
1、System.out.println((int)((Math.random()*9+1)*100000)); 这个是6位的随机数字
2、String chars = "abcdefghijklmnopqrstuvwxyz";
System.out.println(chars.charAt((int)(Math.random() * 26)));
这个是随机的26位字母字符串
如果有其它的规则你可以参考一下这些代码
java 生成不重复字符串
这么说
通过生成随机数每个随机数1-15对应一个字符串
生成随机数后通过看这个随机数是不是出现了的
然后输出
怎么判断是否重复出现可以先
new
a[15]
全部赋值为0然后
a[random(i)]
例如第一个是2
那么a[2]=1;
这么判断是否重复出现
至于随机数的函数自己看API
自有自己写才可以快速的提高
怎么样用java代码自动生成不重复的含有数字和字母的随机码
package tests;
/**
* 随机生成32位字符串
*/
public class String32 {
public static String random(int length){//传入的字符串的长度
StringBuilder builder = new StringBuilder(length);
for(int i = 0; i length; i++){
int r = (int) (Math.random()*3);
int rn1=(int)(48+Math.random()*10);
int rn2=(int)(65+Math.random()*26);
int rn3=(int)(97+Math.random()*26);
switch(r){
case 0:
builder.append((char)rn1);
break;
case 1:
builder.append((char)rn2);
break;
case 2:
builder.append((char)rn3);
break;
}
}
return builder.toString();
}
public static void main(String[] args){
String s = String32.random(32);
System.out.println(s);
}
}
java如何生成不重复8位String类型字符串?
没有什么特别好的办法
组成有 62个字符
那你每次就取 随机数x 0~62范围 对应a[x]
取8次组成一个字符串
存放在 hashmap中
直到hashmap中的个数满足要求 就停止
java生成不重复字符串的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java给定一个字符串,找出不含有重复、java生成不重复字符串的信息别忘了在本站进行查找喔。