C#字符串操作(一)

C#内置类型中,字符串是唯一的引用类型,具有不可变性和密封性。

不可变性指字符串一旦创建成功,将不可更改,str1=str1,实际上在堆新创建了一个str1字符串对象,并且返回对该对象的引用。

密封性指字符串不能被继承。

不可变性和密封性能保证字符串类型更加高效和安全。

字符串操作

1、格式化字符串

String.Format

  string str1 = "puguo  2530";
  string strFormat = "{0,20}";//字符串格式化占20字符
  string strResult=string.Format(strFormat,str1);
  Console.WriteLine("string.Format({0},{1})=[{2}]\n",strFormat,str1,strResult);
标准数字格式化字符串 含义 实例
C或c 货币 string.Format("{0:C}",10)=¥10.00
D或d 补位 string.Format("{0:D3},10")=010
E或e 指数 string.Format("{0:E3},10")=1.000e+001
F或f 固定点 string.Format("{0:F3},10")=10.000
G或g 常规 string.Format("{0:G3},10")=10
N或n 千分符 string.Format("{0:N},10000")=10,000.00
P或p 百分号 string.Format("{0:P},1")=100%
X或x 十六制 string.Format("{0:X}",1900)=96C
自定义数字格式化字符串 含义
0 0占位符
# 数字占位符
. 小数点
千位分隔符
段分割符
% 百分符

2、比较字符串

(1)、string.Compare(str1,str2)

str1<str2   --->-1

str1==str2 --->0

str1>str2   --->1

(2)、string.CompareOrdinal(str1,str2); 与(1)区别,与本地化无关

str1<str2   --->-1

str1==str2 --->0

str1>str2   --->1

(3)、str1.CompareTo(str2);

str1<str2   --->-1

str1==str2 --->0

str1>str2   --->1

str2 is null  --->1    ""比null大

(4)、string.Equals(str1, str2)  <==> str1==str2

str1==str2 --->0

str1!=str2 --->!0

(5)、 str1.Equals(str2)

str1==str2 --->0

str1!=str2 --->!0

(6)、str1==str2

总结:静态方法比实例方法效率高,因为静态方法比实例方法先加载。总的来说,(1)(2)比(3)好,(4)比(5)好

3、字符串连接

(1)、str1+str2

(2)、string.Concat(str1,str2)

4、复制字符串

(1)、str2=string.Copy(str1);

copy创建一个新的实例字符串对象,str2,str1不是指向同一字符串引用。

(2)、str2=str1

直接复制,str2与str1指向同一字符串引用。字符串的不可变性导致字符串引用的指不可变,改变字符串的指知识改变字符串指向的字符串引用。

(3)、str2=(string)str1.clone()

str1.clone()返回的是object类型,强制转化为string,与(2)效果一致。

时间: 2024-07-31 20:55:57

C#字符串操作(一)的相关文章

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

PHP字符串操作大集合

字符串的处理非常重要.文本字符串中的空格或者其他没有意义的符号.例如,在一个电子商务应用中,当用户填写订单的内容时(如联系地址),可能输入一些空格.句号等PHP4及以上版本提供了4个去除字符串str首尾处空格或其他特殊符号.     string ltrim(string str [, string charlist]):去除字符串str尾的空格或其他特殊符号.     string chop(string str [, string charlist]):功能同rtrim(). 以上函数的第1

C语言难点1之输入输出,链接,字符串操作

C语言难点1之输入输出,链接,字符串操作 最近发现写了一段时间的C之后,还是有一些点并没有很好的get,我就想总结出来,写个系列博客,自己也好好的整理一下思路.这个系列主要出自三本书:<C专家编程>,<C陷阱和缺陷>,<C和指针>.有兴趣的同学可以好好看一下这几本书,对于打好C语言的基础是个非常不错的几本书. 1 一些输入输出的格式 对应的printf():和scanf()函数:在这里我给出常用的scanf格式码,和printf()函数也是一样的. 2 getchar(

C语言字符串操作总结大全(超详细)

1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1

linux shell 字符串操作(长度,查找,替换)详解

原文地址:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT}

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//

Python字符串操作

isalnum()判断是否都是有效字符串 ? 1 2 3 4 5 6 7 8 9 10 11 12 >>> ev1 = 'evilxr' >>> ev2 = 'ev1il2xr3' >>> ev3 = '.,/[email protected]#' >>> a = ev1.isalnum() >>> print a True >>> b = ev2.isalnum() >>> pr

JavaScript中常见的字符串操作函数及用法汇总

1.字符串转换 字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: ? 1 2 var num= 19; // 19 var myStr = num.toString(); // "19" 你同样可以这么做: ? 1 2 var num= 19; // 19 var myStr = String(num); // "19" 或者,再简单点儿: ? 1 2 var num= 19; // 19 var myStr =

数据库字符串操作

select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了.left()是sql函数.select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据.字符串和表达式执行不同的运算.此类函数作用于CHAR.VARCHAR. BINARY. 和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类

bash字符串操作

字符串操作: 字符串切片:${var:offset:length} a="world"         ${a:2:2}的结果是:rl     取字符串的最后几个字符:${var: -length}         注意:冒号之后有空格 基于模式取子串:         ${var#*word}:其中word可以是指定的任意字符:自左而右,查找var变量所存储字符中,第一次出现的word,删除字符开头直至第一次wrod出现处之间的所有字符:             # mypath='