c# - 如何将1个字符串分成多个字符串

标签 c# string

<分区>

如何使用 C# 将“ThisIsMyTestString”转换为“This Is My Test String”?

有什么快速的方法吗?

我一直在想一个伪代码,但它又复杂又丑陋:

String s = "ThisIsMyTestString";

List<String> strList = new List<String>();
for(int i=0; i < str->Length ; i++)
{
   String tmp = "";
   if (Char.IsUpper(str[i]))
   {
     tmp += str[i];
     i++;
   }

   while (Char::IsLower(str[i]))
   {
     tmp += str[i];
     i++;
   }

   strList .Add(tmp);
}

String tmp2 = "";
for (uint i=0 ; i<strList.Count(); i++)
{
  tmp2 += strList[i] + " ";
}

最佳答案

您可以按照此处所述使用正则表达式:

Regular expression, split string by capital letter but ignore TLA

您的正则表达式:“((?<=[a-z])[A-Z]|A-Z)”

查找并替换为“$1”

string splitString = Replace("ThisIsMyTestString", "((?<=[a-z])[A-Z]|[A-Z](?=[a-z]))", " $1")

在这里(?<=...)是一个“积极的后视,一个应该在匹配之前的正则表达式。在这种情况下,后视是“字符'a'到'z'” (?=...)是一个类似于前瞻的构造,其中匹配必须跟在正则表达式描述的字符串之后。在这种情况下,先行是“字符‘a’到‘z’” 在这两种情况下,最终匹配包含一个字符“A”到“Z”,后跟“a”-“z”或一个字符“a”到“z”,后跟一个大写字母。替换这些匹配项会在大写字母和小写字母之间放置一个空格

关于c# - 如何将1个字符串分成多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657684/

相关文章:

string - 如何在 Matlab 中的 HDF5 属性字符串中换行

c# - 如何将面板中的内容居中?

c# - 如果页面在 using block 中重定向,DB Context 会自动处理吗?

c# - BlockInput 方法在 Windows 7 上不起作用?

c# - 有没有办法将数据从 excel 表导入到 SQL Server 数据库中?

algorithm - 样本量大时计算字符串相似度分数的有效方法?

c++ - 从字符串中删除指定字符 - 高效的方法(时间和空间复杂度)

java - 我需要将一个对象转换为字符串,然后通过将其转换回我的对象​​来检索它

c# - 如何在以下场景中使用线程或任务模式

swift - 在 String 中创建 NSRange 时崩溃