细节杂记 移除字符串中的字符 remove indexof 字符串大小比较 compare
来源:互联网 发布:第一源码 编辑:程序博客网 时间:2024/06/05 00:14
...//这里设置字符串a的值
//查找"string"并删除
int i = a.IndexOf("string");
a=a.Remove(i, "string".Length); // 结果在返回值中
string str1="how are you";
str1.IndexOf("is")这个的结果应该是多少?
-1
没有找到就返回-1 找到了返回索引
二、 字符串比较
1:要判断2个字符串变量是否相等,最高效的方法是看它们是否指向相同的内存地址。前面使用RefernceEquals方法来比较。如果2个变量指向的是不同的内存地址,那么就需要逐字符的比较2个字符串的变量,才能确认它们是否相等。由于逐字比较会花费大量的时间,降低性能。所以.NET提供了String.Equals方法来优化比较过程该方法能自动地完成引用比较和值比较。
string str1="abc";
string str2="abc";
string str3=String.Copy(str2);
string str4="abc";
Console.WriteLine(String.Equals(str1,str2)); //true;
Console.WriteLine(str1.Equals(str3)); //true;
Console.WriteLine(str1 == str3); //true;
Console.WriteLine(str1 == str4); //false;
其实“==”操作符,它实际上在底层是调用Equals方法,这是完成比较的一种简捷方式。虽然Equals方法已经满足了大多数的比较的需要,但是此方法没有重载方法,不支持区分大小写,和考虑每个国家的文化因素
2:String.Compare是一个比较灵活的比较方法,由于考虑到大小写或文化因素,就可以使用此方法。因为它有许多重载的形式,可以接受大小写或文化的参数,也支持子串比较。
语法如下;
int Compare(string str1,string str2);//指定要比较的字符串;
Compare(string str1,string str2,bool IgnoreCase);//bool IgnoreCase默认为false,如果是true,则不区分大小写的比较。
Compare(string str1,string str2,bool IgnoreCase,CulureInfo ci);//CulureInfo ci,要使用的文化。
Compare(string str1,int index1,string str2,int index2,int len);//index1和index2分别表示str1和str2的起始位置。
Compare返回一个表示比较结果的整数值,两个字符相同,则返回0;如果第一个字符串小宇第二个字符串,则返回小于0;如果第一个字符串大于第二字符串,返回值大于0;
int result;
string str1="ABC";
string str2="abc";
result=string.Compare(str1,str2);//返回1,因为A比a大;
result=string.Compare(str1.str2,false);//返回1,区分大小写;
result=string.Compare(str1,str2,ture);//返回0,不区分大小写;
在编写程序是,要考虑的文化因素影响。.NET给各种文化的分别提供了一组准则,在执行Compare方法时,CLR会检查相关文化,并使用相对应的准则。Compare方法提供了一个CultureInfo对象参数。
CultureInfo ci = new CultureInfo("cs-cz");
要明确的指定一个默认文化或者无文化信息,CultureInfo类提供了2个成员属性,CurrentCulture(当前线程相关文化)和InvariantCulure(忽略文化因素),可以作为参数传递给方法。这样使得程序具有自描性,可以清楚的这些方法是否受到文化的影响。
3:String.CompareOrdinal是对严格基于字符的序数值完成比较。它其实是使用一种简单的算法来比较2个字符串的Unicode值。如果第一个字符串小于第二个字符串,则返回小于0;如果是2个字符串相等,返回0;如果第一个字符串大于第二字符串,则返回大于0的值。
string str1=“Abc”;
string str2=“abc”;
result=string.Compare(str1,str2,false,CultureInfo.InvariantCulture);//返回1,A比a大,不受文化影响。
result=string.CompareOrdinal(str1,str2);返回负数-20。因为CompareOrdinal比较的是底层的Unicode值。A(U+0041)小于a(U+0061),所以第一个字符串小于第二个字符串
- 细节杂记 移除字符串中的字符 remove indexof 字符串大小比较 compare
- 移除字符串NSString中的特定字符
- 移除字符串中的字符和移除字符串数组中的字符
- iOS compare字符串比较
- Compare Version Numbers 版本大小比较 字符串处理
- Java中的字符串大小比较
- JavaScript中的字符串大小比较
- 如何高效移除字符串中的空白字符
- 【LintCode】 Compare Strings 比较字符串
- HDU1894 String Compare 字符串比较
- 字符串去掉特殊字符和比较字符串大小
- [mssql]字符串移除指定长度字符
- [MSSQL]字符串移除指定长度字符
- 移除字符串中重复的字符
- C# 移除字符串末尾指定字符
- Java中的字符串比较相等与大小
- Java中的字符串比较相等与大小
- 字符串 indexOf
- hdu 3342 Legal or Not
- Roman to Integer
- Android 常用 Intent
- IOS开发数据库篇—SQLite模糊查询
- 第1周-项目1-旱冰场造价
- 细节杂记 移除字符串中的字符 remove indexof 字符串大小比较 compare
- Client/Sever模式的通信——Java
- 如何用JSF技术上传文件(PrimeFaces)
- ViewPager的使用(上)
- Android常用Intent
- 树莓派插入DS18B20 无法读取数据解决办法
- 文件创建失败问题
- 仿商业网站——商品评分效果实现【提高篇】
- 第一章27页第5题