这个字符串输出怎么可能?

时间:2016-06-20 05:40:54

标签: java

我不确定如何在Java语言中输出以下内容。注意输出中存在双短划线:

String keyName = projectId.AsString + "-comments-" + creationMomentString + "-" + _rand.nextInt() +  ".txt";
System.out.println(creationMomentString);
System.out.println(_rand.getClass());
System.out.println(keyName);

输出:

0000001466400377645
class java.security.SecureRandom
o7grn3qt-comments-0000001466400377645--874329600.txt


-------------------------------------^

4 个答案:

答案 0 :(得分:8)

嗯......

致电

 _rand.nextInt()

返回一个整数值。整数可能是负数。例如,它可能是

-874329600

从而产生你得到的输出。

第一个减号是字符串连接的文本输出。第二个减号是数字的符号。

答案 1 :(得分:2)

Random.nextInt可以返回否定值。您所看到的是您明确输入的"-",后跟负数。

答案 2 :(得分:0)

它绝对是Random()返回值的减号.nextInt()。在Javadoc中我们可以看到:

  

所有2 ^ 32个可能的int值都以(近似)相等的概率生成。

答案 3 :(得分:0)

它不是你想到的双击(--)。类

的函数nextInt()
java.security.SecureRandom 

生成负{1}}的唯一随机数。

所以你的完整字符串作为文件名将显示为-874329600

如下面的缩写..

o7grn3qt-comments-0000001466400377645--874329600.txt