[英]C# Splitting strings randomly
我有一个这样的字符串:
string str = "ABCDEFGHI"
我想要这样的结果:
string str1 = "AB";
string str2 = "CDEF";
string str3 = "G";
string str4 = "HI";
这个想法是将一个字符串随机划分为一个随机长度的 substring 序列。
我试过以下方法:
public static string SplitString(string input)
{
string result = "";
int j = 0;
for (int i = 0; i < input.Length; i++)
{
Random random = new Random();
j = random.Next(i+1, input.Length);
string subString = input.Substring(i,j); //ERROR
i = j-1;
Console.WriteLine("New substring: " + subString);
result = result + subString;
}
return result;
}
看起来这种方法根本不正确,因为当我创建一个 substring 并且i索引大于j时,程序会出现异常。
有没有办法避免这个错误?
Substring(Int32, Int32) 从索引 i 开始提取长度为 j 的 substring,一旦 i+j >= input.Length - i 为真,它将中断。
示例:应用于“ABCDEF”的 Substring(2,2) 应返回“CD”。 在您的特定情况下,可能会有像 Substring(4,5) 这样的东西抛出异常,因为 String 没有足够的元素。 在某些时候,这个循环总是会导致异常。
有关 Substring 使用的更多详细信息,请参见此处: https://learn.microsoft.com/en-us/do.net/api/system.string.substring?view.netcore-3.1
您可以解决的一些问题:
算法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.