将字符串拆分为所有可能的选项
本文关键字:有可能 选项 字符串 拆分 | 更新日期: 2023-09-27 18:10:58
我想将字符串拆分为从2个字符到末尾的所有选项
的例子:
string temp = "abcdef";
输出:
ab
bc
cd
de
ef
abc
bcd
cde
def
abcd
bcde
cdef
abcde
bcdef
abcdef
考虑使用枚举器实现:
private static IEnumerable<string> Substrings(string input)
{
for (int l = 2; l <= input.Length; l++)
{
for (int i = 0; i <= input.Length - l; i++)
{
yield return input.Substring(i, l);
}
}
}
用法:
static void Main(string[] args)
{
foreach (var str in Substrings("abcdef"))
{
Console.WriteLine(str);
}
}
您可以创建一个奇特的扩展方法:
static class StringExtensions {
public static IEnumerable<String> SplitInParts(this String s, Int32 partLength) {
if (s == null)
throw new ArgumentNullException("s");
if (partLength <= 0)
throw new ArgumentException("Part length has to be positive.", "partLength");
for (var i = 0; i < s.Length; i += partLength)
yield return s.Substring(i, Math.Min(partLength, s.Length - i));
}
}
你可以这样使用它:
for (I = 2; I <= MyStr.Lenght; I++)
{
var parts = MyStr.SplitInParts(I);
Console.WriteLine(String.Join(" ", parts));
}