为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这段代码使用随机字符串打印出了”hello world”

为什么这段代码使用随机字符串打印出了”hello world”

慕桂英4014372 2018-12-06 13:09:51
System.out.println(randomString(-229985452) + " " + randomString(-147909649)); public static String randomString(int i){ Random ran = new Random(i); StringBuilder sb = new StringBuilder(); while (true) { int k = ran.nextInt(27); if (k == 0) break; sb.append((char)('`' + k)); } return sb.toString(); } 从这篇博客看到的这个问题,但是他的解释,我没看明白。希望大神解释下。
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

 

new Random(-229985452).nextInt(27)
The first 6 numbers that the above random generates are:

8
5
12
12
15
0
and the first 6 numbers that new Random(-147909649).nextInt(27) generates are:

23
15
18
12
4
0
Then just add those numbers to the integer representation of the character ` (which is 96):

8 + 96 = 104 --> h
5 + 96 = 101 --> e
12 + 96 = 108 --> l
12 + 96 = 108 --> l
15 + 96 = 111 --> o

23 + 96 = 119 --> w
15 + 96 = 111 --> o
18 + 96 = 114 --> r
12 + 96 = 108 --> l
4 + 96 = 100 --> d

查看完整回答
反对 回复 2018-12-16
  • 2 回答
  • 0 关注
  • 479 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信