String.substring(int, int)
Javaの の 2 番目のパラメーターは長さではありません。これは、インデックスの (排他的な) 上限です。一方、.NET では、String.Substring(int, int)
reallyの 2 番目のパラメーターは長さです。
したがって、Java で呼び出すときはいつでも、それは .NETfoo.substring(x, y)
と同じfoo.Substring(x, y - x)
です...そして、それを本当に考慮する必要があります。
何をしようとしているのかは明確ではありませんが、ループはJavaでも機能しません。本当に文字列から単一の文字を取得したい場合は、次のようにインデクサーを使用して%
ください。
string text = "BCDABCD";
for (int i = 0; i < 63; i++)
{
Console.WriteLine(text[i % text.Length]);
}
編集:コメントを考えると、あなたはただ欲しいと思う:
for (int i = 0; i < 63; i++)
{
Console.WriteLine("BCDABCD".Substring(3 - (j & 3), 4));
}
... つまり、長さは常に 4 になります。