public class TestRandomArray {
public static void main(String[] args) {
int arr[]=new int[6];//选取多少人
String test2[]={"111","222","333"};
String test[]={"111","222","333","444","555","666","777","888","999"};
for(int i=0;i<6;i++){
arr[i]=(int) (Math.random()*8+1);
for(int j=0;j<i;j++){
if (arr[j] == arr[i])
{
i--;
break;
}
}
}
for(int i=0;i<6;i++){
System.out.println(arr[i]);
System.out.println(test[arr[i]]);
}
}
}
这是我写的代码,用于随机输出test数组里面的数,现在的问题是我想在test2[]选取一个随机的数,但在test[]中排除test2[]中所选取的随机数,该怎么实现啊
public static void main(String[] args) {
int arr[]=new int[6];//选取多少人
String test2[]={"111","222","333"};
String test[]={"111","222","333","444","555","666","777","888","999"};
for(int i=0;i<6;i++){
arr[i]=(int) (Math.random()*8+1);
for(int j=0;j<i;j++){
if (arr[j] == arr[i])
{
i--;
break;
}
}
}
for(int i=0;i<6;i++){
System.out.println(arr[i]);
System.out.println(test[arr[i]]);
}
}
}
这是我写的代码,用于随机输出test数组里面的数,现在的问题是我想在test2[]选取一个随机的数,但在test[]中排除test2[]中所选取的随机数,该怎么实现啊
解决方案 »
- Thinking in Java 里面一个地方看不明白 来问问
- 我认为对的!!怎么错了!!请做文字说明!!
- error 1335 求助
- 有关编写输出"*"applet程式
- JOptionPane上面的文字字体大小怎么修改?
- 刚从全国JAVA技术应用大会回来!
- 求个思路,判断double是否能转化为int(例:1.0是可以转化为1,1.01是不能被转化的)
- 做一个应用程序,如何设置一次就能让所有控件,比如菜单,button,textarea等所有的字体保持一致呢,而不用写一个button,就设置一个呢?谢
- 关于JAVA的几本书的问题......
- 学到了maven,想问下jvm类加载的这个路径的问题
- 关于ThreadLocal的诡异问题,百思不得其解
- String Contains问题
默认值为false
在test2[]中标记位true,进行下一个判断,在test[]中标记为false
循环结束,如果为true就保存
public class Test3 {
public static void main(String[] args) {
//取出的数
String str;
String test[]={"111","222","333","444","555","666","777","888","999"};
String test2[]={"111","222","333"};
int flag=0;
while(true){
if(!(str=exist(test, test2)).equals("")&&flag<6){
System.out.println(str);
flag++;
}
}
}
//判断一个字符是否在数组一中,但不在数组二中
public static String exist(String[] test,String[] test2){
int num=(int)(Math.random()*test.length);
String str=test[num];
for(String s:test2){
if(s.equals(str))
return "";
}
return str;
}
}
真没什么难度。。
做程序的,多练练逻辑能力吧,这个很重要。
public static void main(String[] args) {
//取出的数
String str;
String test[]={"111","222","333","444","555","666","777","888","999"};
String test2[]={"111","222","333"};
int flag=0;
while(true){
if(!(str=exist(test, test2)).equals("")){
System.out.println(str);
flag++;
if(flag==6){
break;
}
}
}
}
//判断一个字符是否在数组一中,但不在数组二中
public static String exist(String[] test,String[] test2){
int num=(int)(Math.random()*test.length);
String str=test[num];
for(String s:test2){
if(s.equals(str))
return "";
}
return str;
}
}
//装那六个数的集合list
List<String> list=new ArrayList<String>();
String str="";//一开始的随机数,从test2中取出的那个
for(int i=0;i<6;i++){
for(String s:test){
if(s.equals("str")){
break;
}else{
list.add(s);
s="";
}
}
}
裸写的,没调试,自己调试吧。这个要求逻辑更简单