C#如何删除字符串中任何位置的空格?

您所在的位置:网站首页 字符串如何去掉空格 C#如何删除字符串中任何位置的空格?

C#如何删除字符串中任何位置的空格?

2024-05-09 02:23| 来源: 网络整理| 查看: 265

C#如何删除字符串中任何位置的空格?

—— 新手编程1001问之C#编程基础

你或许知道你能使用String.Trim()方法,去除字符串的头和尾的空格。不幸运的是,这个Trim方法不能去除字符串中间的C#空格。

事实上,C#提供了多种方法清除字符串中的空格,我们分述如下。

首先,我们最容易想到的当然是Trim()方法,示例代码如下:

示例代码1示例代码1

的确,Trim() 方法只能去除字符串首尾的空格。

上面代码运行的结果显示为:aa a

那么,我们如何去掉字符串中间的空格呢?

我们可能想到的算法是:以空格为分隔符,将原字符串转换为数组,再遍历数组并且重新拼接为一个新的字符串。理论上,这是没有问题的。示例代码如下:

示例代码2示例代码2

我们看到demo2的代码数量明显增加了,并且,新增了一个数组对象和一个新字符串对象,并且使用了两次转换(字符串转数组和数组元素重新拼接位字符串),这样操作显然会影响代码的性能,如果字符串的长度足够大,这个方法就需要斟酌了。

那么,C#有没有一个直接清除字符串任意位置空格的方法呢?

答案是肯定的,我们可以使用替换函数 Replace() 来实现。示例代码如下:

示例代码3示例代码3

上面代码运行的结果,显示为:Thisiswhatmyteststringlookslike

哈哈,这个看起来效率不错啊!

事实上,有同学已经做过测试,在多种替换(清除空格)的方案中,Replace()的确是效率最高的。

但是,请注意,使用Replace()的时候,我们需要特别注意一点,Replace()函数不会直接改变原来字符串的值,而是返回一个经过替换操作以后的新值。所以,使用的时候,通常会把它再赋值给原来的字符串对象,例如上面的案例。

还有一种情况,如果我们需要操作的对象不是一个简短的字符串,而是一个长文本,其中可能包含回车、tab以及空行等等,都需要一并清除,怎么办?

这里告诉大家一个简单方法,因为Replace()支持嵌套操作,那么,我们就可以连续使用该方法直接使用目标字符串(空字符串)替换掉它们。代码如下图示:

实例代码4实例代码4

上面的代码运行的结果,同样显示为:Thisiswhatmyteststringlookslike

好了,从这个问题的答案中,我们能体会到,一个看似简单的问题,总有多种算法实现。

我们一直倡导,作为程序员,我们要培养自己在代码问题上拥有“强迫症”的习惯,努力寻找最佳的解决方案。这样,我们编程的水平也才能不断精进。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3