我尝试制作一个Android应用程序,目标是该玩家将与te计算机对战。第一个玩家将填写什么样的数字(可能是3或4位数)。
让我们说玩家选择3位数。比计算机生成一个数字,每个数字只能在数字中使用一次。像021,236,750 ......比玩家还要创造3位数。玩家将试图猜测计算机数字,计算机将尝试找到玩家数字。我尝试过类似的东西;
public static void main(String[] args) {
ArrayList<String> fiNum = new ArrayList<String>();
ArrayList<String> cijfer = new ArrayList<String>();
cijfer.add("0");
cijfer.add("1");
cijfer.add("2");
cijfer.add("3");
cijfer.add("4");
cijfer.add("5");
cijfer.add("6");
cijfer.add("7");
cijfer.add("8");
cijfer.add("9");
System.out.println("Please enter digit length ");
Scanner nummerOfChoise = new Scanner(System.in);
String cooiseresult = nummerOfChoise.nextLine();
int cc = Integer.parseInt(cooiseresult);
for (int i = 0; i < cc; i++) {
int getal = (int) (Math.random() * cijfer.size());
fiNum.add(cijfer.get(getal));
cijfer.remove(getal);
}
System.out.print(fiNum);
}
如果我想打印数字,它会输出类似
的内容Please enter digit length
3
[3, 9, 1]
我的问题是将此数组转换为整数或字符串的最佳方法是什么,我该怎么做。
谢谢。
答案 0 :(得分:2)
使用现有代码,最简单的可能是:
String drieCijfers = fiNum.get(0) + fiNum.get(1) + fiNum.get(2);
但最好不要将您的号码构建为字符串列表,而应将其作为int
或long
开头:
public static void main(String[] args) {
ArrayList<Integer> cijfer = new ArrayList<Integer>();
for (int i = 0; i <= 9; i++)
cijfer.add(i);
System.out.println("Please enter digit length ");
Scanner nummerOfChoise = new Scanner(System.in);
String cooiseresult = nummerOfChoise.nextLine();
int cc = Integer.parseInt(cooiseresult);
long fiNum = 0;
for (int i = 0; i < cc; i++) {
int getal = (int) (Math.random() * cijfer.size());
fiNum = fiNum * 10 + cijfer.get(getal);
cijfer.remove(getal);
}
System.out.print(fiNum);
}
答案 1 :(得分:1)
你可以做到
public static void printNumber(int length) {
List<Integer> digits = new ArrayList<Integer>();
for(int i = 0; i < 10; i++) digits.add(i);
Collections.shuffle(digits);
for(int i = 0; i < length; i++)
System.out.print(digits.get(i));
System.out.println();
}
洗牌就像洗牌一样,你只能画一次卡/数字。
答案 2 :(得分:0)
如何使用此线程解决方案How do I generate random integers within a specific range in Java?生成最小值和最大值之间的数字
然后将生成的值与计算机/播放器选择的值进行比较。你知道min,max应该是你可以用X位数(10 ^ X -1)得到的最大数字
答案 3 :(得分:0)
这是一个类似的问题,应该引导您朝着您需要的方向前进。
How can I read input from the console using the Scanner class in Java?