我正在编写一些代码,给我一个随机的数字字符串,它们需要在整数下列出,但每个数字都必须在不同的math.random下。例如,如果列出两个单独的数字(例如5和7),我不希望它打印12,我希望它打印57。但是我不想使用System.out.println(Number1 + Number2 );方式。
我尝试了多种方式使用“&”符号,但似乎均无效果。
int Number1 = 1 + (int)(Math.random() * ((5) + 1));
int Number2 = 1 + (int)(Math.random() * ((5) + 1));
int Number3 = 1 + (int)(Math.random() * ((5) + 1));
int finalcode=Number1&Number2&Number3;
System.out.println("Promo Code Genorator:");
System.out.println(" ");
System.out.println("Your Promo Code Is: "+finalcode);
相反,发生的事情是从那里选择最低的数字并打印出来。有任何想法吗?
答案 0 :(得分:1)
如果要将各种数字组合在一起,建议使用String
。
您可以这样写:
int Number1 = 1 + (int)(Math.random() * ((5) + 1));
int Number2 = 1 + (int)(Math.random() * ((5) + 1));
int Number3 = 1 + (int)(Math.random() * ((5) + 1));
String finalcode = String.valueOf(Number1) + String.valueOf(Number2) + String.valueOf(Number3);
System.out.println("Promo Code Genorator:");
System.out.println(" ");
System.out.println("Your Promo Code Is: "+finalcode);
如果您确实需要最终代码为整数,则可以使用
int finalcode = Integer.parseInt(String.valueOf(Number1) + String.valueOf(Number2) + String.valueOf(Number3));
其中Integer.parseInt(String string)
接受一个字符串并返回一个整数。
仅供参考,如果要将其转换为long而不是整数,请使用Long.parseLong(String string)
。
希望这会有所帮助!
答案 1 :(得分:0)
这似乎是解决使用流和函数式编程的好问题。
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class LazyNumbersTest {
public static void main(String[] args) {
int result = Integer.parseInt(
Stream.generate(() -> (int)(Math.random() * ((5) + 1)))
.peek(System.out::println)
.limit(3)
.map(Object::toString)
.collect(Collectors.joining(""))
);
System.out.println("Promo Code Generator:");
System.out.println(" ");
System.out.println("Your Promo Code Is: " + result);
}
}
这是无限的随机数流,我们从中抽取前3个并将其转换为字符串,然后将它们连接在一起并转换为整数。
如果要在计算中增加或减少数字,只需更改limit
中的数字即可。很遗憾我无法在流畅的操作流程中加入parseInt
(而不会使其变得很丑陋)。