在java中,子字符串函数(索引,长度)索引可以高于长度
System.out.print("BCDABCD".substring(3 , 7));
这个输出“ABCD”
我不想要这个
Console.Writeline("BCDABCD".substring(3 , 4));
例如,如果我想生成这个:
for i = 0 to 63 {Console.Writeline("BCDABCD".substring(i , i + 1 )));
如何在 c# 中做到这一点?
Java 中的第二个参数String.substring(int, int)不是长度——它是索引的(独占)上限。而在 .NET 中,第二个参数String.Substring(int, int)真的是长度。
因此,任何时候调用foo.substring(x, y)Java 时,它都等同于foo.Substring(x, y - x)使用 .NET ......你真的需要考虑到这一点。
目前还不清楚您要做什么,但您的循环在 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。