このコードを C# で実行すると、生成される出力は、実行ごとに変化する 2 つのランダムな文字列です。しかし、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();
}