字符串操作.查找两个索引之间的字符串

本文关键字:字符串 两个 索引 之间 操作 查找 | 更新日期: 2023-09-27 18:11:05

给定一个字符串例如500个字符,我想在索引400和索引430之间选择一个字符串。如何编写这样的函数?

谢谢

字符串操作.查找两个索引之间的字符串

使用string.Substring()方法

Like var truncString = longString.Substring(400, 30);

注意,您应该检查longString的长度,它至少是430个字符。如果不是,Substring将抛出异常。

string x = "aaaa";
string part = x.Substring(400,Math.Min(x.Length,430)-400);

Substring (startindex、长度)

字符串对象的Substring()方法会给你这个。

string s = "your huge string .... 700 characters later";
string between = s.Substring(400, 30); //start at char 400, take 30 chars

如果string S是你的500字符字符串,那么你可以:

string result = S.Substring(400, 30);

不是特别重要,只是一些需要注意的事情,以避免类似" off-by-one "的错误。

由于您没有明确声明是否包含端点,yourString.Substring(400, 30)不会只给你索引400和430之间的字符(即ex包括索引400和430)。

相反,您得到的是由从索引400(含)到索引429(含)的字符组成的子字符串。

要实际获得两个索引ex之间的字符串,包括端点(导致从索引401到429的字符组成的字符串),您需要如下代码:

yourString.Substring(beginIndex+1,endIndex-beginIndex-1);

如果你想同时包含索引400 430(结果是一个31个字符的字符串):

yourString.Substring(beginIndex,endIndex-beginIndex+1);

string result = S.Substring(startIndex, startIndex - endIndex);

c# 8在字符串[n..L]上有一个有用的范围索引方法

  • 更多的例子在https://www.codejourney.net/csharp-8-slicing-indexes-ranges/.
var example = "An extraordinary day dawns with each new day.";
Console.WriteLine(example[3..(15+1)]);
// extraordinary
//if you use ^ then it grabs the index from the end
Console.WriteLine(example[3..^5]);
// extraordinary day dawns with each new

特定于问题

var result = example[400..(430+1)];