c# - 如果索引高于c#中的字符串,什么类似于java的子字符串?

标签 c# java

java中的子字符串函数(index,lenght)索引可以高于lenght

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# 中做到这一点?

最佳答案

String.substring(int, int)的第二个参数在 Java 中不是长度 - 它是索引的(独占)上限。而在.NET中,String.Substring(int, int)的第二个参数实际上一个长度。

因此,任何时候您在 Java 中调用 foo.substring(x, y) 时,都相当于 .NET 中的 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。

关于c# - 如果索引高于c#中的字符串,什么类似于java的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18536161/

相关文章:

java - Web Developer 想学习桌面编程

Java变量必须在它自己的范围内初始化?

java - RxJava 2 : Why can't PublishProcessor subscribe to an Observable?

java - 从客户端向服务器发送击键

c# - 锁定一个winforms控件

c# - WPF:从自定义控件引用窗口

java - 如何将字符串变量插入文件路径?

c# - TypeDescriptionProvider/HyperDescriptor 实现

c# - DotNetOpenAuth 的教程在哪里以及如何解决其示例中的编译错误

c# - 第一次目录枚举太慢