string word = "hello";
我想要做的是将字符串切片,以便可以在控制台窗口中打印例如"elloh"。在Python中非常简单,但我不确定在C#中是否有特定的切片方法。
string word = "hello";
我想要做的是将字符串切片,以便可以在控制台窗口中打印例如"elloh"。在Python中非常简单,但我不确定在C#中是否有特定的切片方法。
可以通过索引来获取字符串中的字符:
string word = "hello";
char h = word[0];
或字符串具有“切片”的方法:
int start = 0;
int length = 1;
string h = word.Substring(start, length);
为什么不阅读文档自己找出答案呢?
“切片”的概念没有确切的翻译,但一般用 Substring
方法实现。
我不确定您具体的分割标准是什么,但这个方法可以满足您的要求:
void Main()
{
var input = "hello";
var output = input.Substring(1, input.Length - 1) + input.Substring(0, 1);
Console.WriteLine (output);
}
ReadOnlySpan<char>
可用之前。当时这已经是最好的选择了。 - Lasse V. Karlsenint.Parse(ReadOnlySpan<char>)
的支持仅在.NET Core 2.1中实现,未在.NET Standard或.NET Framework中提供。由于您已经了解ReadOnlySpan<char>
,我不确定您为什么对Substring
抱怨,因为似乎您已经知道可以使用什么。您有问题吗? - Lasse V. KarlsenSystem.Range
运算符,因此现在您可以像这样做:string word = "hello";
Console.WriteLine(word[1..] + word[0]);
输出为"elloh"
substring
函数:word.Substring(1);
http://msdn.microsoft.com/en-us/library/system.string.substring(v=vs.110).aspx
ReadOnlySpan<char>
在某些情况下提供了更好的替代方案,但是如果你打算标记每个告诉人们使用"Substring"的答案为“不够好”,我害怕你会找到Cobol文档。 - Lasse V. Karlsenpublic static string Rotate(this string s, int numberOfChars)
{
if (string.IsNullOrEmpty(s))
return s;
numberOfChars %= s.Length;
if (numberOfChars == 0)
return s;
if (numberOfChars < 0)
numberOfChars += s.Length;
return s.Substring(numberOfChars) + s.Remove(numberOfChars);
}