C# 处理空格

标签 c# arrays linq char whitespace

我有一个输入字符串,它被放入结果,然后从那里转换成一个char[],我把第一个字母设为大写字母。我的问题是在 for 语句中,我试图在每个大写字母前放置一个空格。 它无法识别 insert(),因为 char[] 有什么替代品?

我也有一个问题,因为我的第一个字母大写,它会在第一个单词上输入一个空格。我该如何解决这个问题并将其实现到我的代码中。

例子:

“你好”

输出

“你好”

我是否将它插入到一个新的字符串名称中?并返回它而不是输出,例如char[] final 将是最终的返回。

最后,必须在每个大写字母前添加空格,我如何应用只允许 1 个空格的规则?

最佳答案

我会使用正则表达式在每个大写字母前插入空格:

var result = "HelloThere";
Console.WriteLine(Regex.Replace(result, @"\s*(\p{Lu})", " $1"));

请注意,\s* 匹配 0 个或多个空白字符,而 \p{Lu} 匹配任何 Unicode 大写字母。将大写字母捕获到第1组中,并借助替换字符串在大写字母字符串前添加空格。

参见 IDEONE demo

不要忘记添加 using System.Text.RegularExpressions 指令。

这是一个full example使用在静态类中声明的正则表达式:

public static void Main()
{
    var result = "HelloThere";
    Console.WriteLine(Regexes.rxAddSpaceBeforeCapital.Replace(result, " $1"));
    result = "Hello  There";
    Console.WriteLine(Regexes.rxAddSpaceBeforeCapital.Replace(result, " $1"));
}

public static class Regexes
{
    public static readonly Regex rxAddSpaceBeforeCapital = new Regex(@"\s*(\p{Lu})", RegexOptions.Compiled);    
}

关于C# 处理空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32320687/

相关文章:

php - 从未知对象属性构建数组

javascript - 更改数组项的子元素(语法)

c# - IQueryable参数——如何查看?

c# - 如何执行可以反转 key 的 LINQ GroupBy?

c# - Linq 到 SQL : WHERE IN statement

c# - 在 SqlCommand-ExecuteScalar 错误处理上转换为 int

c# - OpenPop - 获取电子邮件详细信息 c#

javascript - 将多维数组的值声明为 true 或 false

c# - ASP.NET MVC 删除 View - 这是如何工作的

c# - 错误 : VS2017 Live Unit Testing - only minus's - doesn't work