C# string类型遇到的两个问题
最近在维护一位离职的同事写的WPF代码,偶然发现他使用C# string类型的两个问题,在这里记录一下。
1. 使用Trim函数移除字串中的空格、换行符等字符串。
csRet.Trim(new char[] { '\r', '\n', '\t', ' ' });
if (!csRet.Equals(string.Empty))
statement1;
else
statement2;
上述代码的意图为:移除string类型变量csRet开头和结尾处的换行符、制表符、空格符之后,判断该字符串是否是空。
实际检验发现当csRet中只包含上述四种字符的时候,statement2被执行了,也就是说trim后的字符串不是空这是为什么呢?研究后发现,Trim函数确实是可以从字符串的开始、结束位置移除指定的字符串,但是,改动作并不是在原始字符串上操作的,而是会返回一个执行了移除操作之后的新字符串。所以若想要将csRet内的值改为Trim后的值,可以使用如下方法:
csRet =
csRet.Trim(new char[] { '\r', '\n', '\t', ' ' });
if (!csRet.Equals(string.Empty))
statement1;
else
statement2;
2. 使用Remove函数之后,原始字符串的值未改变
原因与上面的Trim函数使用后原始字符串未改变相同,Remove函数也不会改变原始字符串而是会返回一个新的string类型变量。若想修改原始string类型变量的值,只需要执行一个赋值操作,将Remove函数返回的字符串重新赋值给原始字符串即可。
C# string类型遇到的两个问题的更多相关文章
- 在MVC视图中将数字转换为string类型后保留两位小数
<td>@item.recharge_reward_rate.ToString("F2")%</td> @*保留小数两位*@ <td>@item ...
- string类型的解释与方法
基本概念 string(严格来说应该是System.String) 类型是我们日常coding中用的最多的类型之一.那什么是String呢?^ ~ ^ String是一个不可变的连续16位的Unico ...
- java中的堆、栈、常量池以及String类型的两种声明
参考自http://blog.sina.com.cn/s/blog_798b04f90100ta67.html http://www.cnblogs.com/fguozhu/articles/2661 ...
- Long,String类型的两个值进行比较,注意点!!!
一: . Long 类型指的是 java.util.Lang 对象,而不是基本类型 long (注意大小写)Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较两个对象 ...
- 【转载】 Java中String类型的两种创建方式
本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...
- 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝
第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...
- 使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的变量.数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算 ...
- ElasticSearch 5学习(9)——映射和分析(string类型废弃)
在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...
- C#string类型总结
字符串的特性:不可变性,每对字符串做拼接或者重新赋值之类的操作,都会在内存中产生一个新的实例. 所以说,在.Net平台下,如果你对一个字符串进行大量的拼接赋值等操作,会产生大量的垃圾. --- ...
随机推荐
- 全文检索- Oracle/MySql/达梦
简单使用语法: MySql: ALTER TABLE dataset_ods ENGINE = MyISAM; //5.6后的InnoDB支持全文索引 ALTER TABLE dataset_ods ...
- bzoj 2820 YY的GCD(莫比乌斯反演)
Description 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻× ...
- php 仿百度文库
http://www.haosblog.com/?mod=article_read&id=386
- Bzoj-2005 能量采集 gcd,递推
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2005 题意:题目转换后的模型就是求Σ(gcd(x,y)), 1<=x<=n, ...
- Java正则表达式测试用例
(1)对IP地址进行排序: public static void test_1() { String ip_str = "192.168.10.34 127.0.0.1 3.3.3.3 10 ...
- 把存储过程获取的数据输出到报表的html模板中
制作报表的html模板 <HTML><meta http-equiv="Content-Type" content="text/html; charse ...
- pom.xml报错
错误太多打开文件后就不会显示,点开前边的选项卡就会提示错误信息,一般是jar包没加载全.
- 【3D研发笔记】之【数学相关】(一):坐标系
现在开始学习3D基础相关的知识,本系列的数学相关笔记是基于阅读书籍<3D数学基础:图形与游戏开发>而来,实现代码使用AS3,项目地址是:https://github.com/hammerc ...
- HTML5要点(四)对象全整理
最近在自学H5,一下整理出来一些主要用到的知识点 1.JavaScript 对象 JS Array JS Boolean JS Date JS Math JS Number JS String JS ...
- HTML5要点(一)
一.标签: <!-- -->:注释:cmd +/ <!DOCTYPE html><!--HTML5 专属版本声明标签(表明该页面使用HTML编写),代码最上层--> ...