for(int i=0;i<6){
String imageName=null;
StringBuffer sb = new StringBuffer();
Date date = new Date();
// 获取年月日时分秒
sb.append(new SimpleDateFormat("yyyyMMddHHmmss").format(date));
// 毫秒
String milli = String.valueOf(date.getTime() % 1000);
while (milli.length() < 3) {
milli = "0" + milli;
}
sb.append(milli);
// 四位随机数
String rondom = String.valueOf(new Random().nextInt(10000));
while (rondom.length() < 4) {
rondom = "0" + rondom;
}
sb.append(rondom);
imageName=sb.toString();
}
这个循环中产生的imageName总是有相同的,我怎么样使这个循环中产生的imageName产生的不相同,求助。
String imageName=null;
StringBuffer sb = new StringBuffer();
Date date = new Date();
// 获取年月日时分秒
sb.append(new SimpleDateFormat("yyyyMMddHHmmss").format(date));
// 毫秒
String milli = String.valueOf(date.getTime() % 1000);
while (milli.length() < 3) {
milli = "0" + milli;
}
sb.append(milli);
// 四位随机数
String rondom = String.valueOf(new Random().nextInt(10000));
while (rondom.length() < 4) {
rondom = "0" + rondom;
}
sb.append(rondom);
imageName=sb.toString();
}
这个循环中产生的imageName总是有相同的,我怎么样使这个循环中产生的imageName产生的不相同,求助。
public static void main(String[] args) {
String result = "0";
int []nums = {1,2,3,4,5,6,7,8,9};
for (int i = 0; i < 4; i++) {
int end = nums.length - i - 1;//尾部
//在end范围内产生随机数 作为数组索引
int index = (int)(Math.random()* end);
//将产生出的index索引对应的数 和end位的数 交换
int temp = nums[index];
nums[index] = nums[end];
nums[end] = temp;
result += temp;
}
System.out.println(result);
}
总感觉你这for循环是的死循环来的。
没有对i--或者是赋值操作的
这题如1楼所说,用set去实现吧 Set<String> set = new HashSet<String>();
while(set.size() < 6){
.............
set.add(rondom);
}
代码如下:import java.util.Random;
public class Test {
public static void main(String[] args) {
String s = "";
String removeReplication = "";
Random r = new Random();
int count = 0;
int value;
while(true) {
if(count == 6)
break;
value = r.nextInt(10);
if(!s.contains(String.valueOf(value))) {
s += value;
count++;
} else {
continue;
}
}
System.out.println(s);
}
}第一次测试结果:809536
第二次测试结果:769850
第三次测试结果:780351
给分吧,楼主!
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Integer> set = new HashSet<Integer>();
Random r = new Random();
StringBuffer s = new StringBuffer();
while(set.size() < 6) {
set.add(r.nextInt(10));
}
for(int v:set) {
s.append(v);
}
System.out.println(s);
}
}