如果我在 c# 中运行此代码,生成的输出是两个随机字符串,每次执行都会更改。但是 Java 代码总是打印“Hello World”。
static void Main(string[] args)
{
Console.WriteLine(randomString(-229985452) + " " + randomString(-147909649));
Console.ReadLine();
}
public static String randomString(int i)
{
Random ran = new Random(i);
StringBuilder sb = new StringBuilder();
for (int n = 0; ; n++)
{
int k = ran.Next(27);
if (k == 0)
break;
sb.Append((char)('`' + k));
}
return sb.ToString();
}
但是 Java 中的相同代码会打印“Hello World”。为什么这些语言的行为不同?
Java 代码
System.out.println(randomString(-229985452) + " " + randomString(-147909649));
其方法
public static String randomString(int i)
{
Random ran = new Random(i);
StringBuilder sb = new StringBuilder();
for (int n = 0; ; n++)
{
int k = ran.nextInt(27);
if (k == 0)
break;
sb.append((char)('`' + k));
}
return sb.toString();
}