字符串操作.查找两个索引之间的字符串
本文关键字:字符串 两个 索引 之间 操作 查找 | 更新日期: 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)];