C# StringBuilder类的常用方法和字符串格式化

C#  StringBuilder类的常用方法和字符串格式化
C#  StringBuilder类的常用方法和字符串格式化

C# StringBuild er类的常用方法和字符串格式化

StringBuilder类在实际开发中应用普遍,比如使用Stringbuilder的方法追加字符串、格式化输出字符串、插入字符串、替换字符串等等。本实验将介绍如何使用StringBuilder类中的常用方法对字符串进行操作。

(1)打开Microsoft Visual Studio 2010。新建一个名称为“MyApplication4_2”的项目并在该项目中添加一个“控制台应用程序”。

(2)使用StringBuilder类的Append(string)方法追加字符串。首先创建StringBuilder类的实例sbAdd,然后使用该方法追加字符串,最后输出追加后的

(3)使用StringBuilder类的AppendFormat方法格式化字符串。创建

(4)使用Stringbuilder类的Insert(int,string)方法插入指定字符串。使用StringBuilder类的方法Replace(stringA,stringA)方法进行替换。创建Stringbuilder类

(5)使用string类的Format方法进日期格式化。首先定义三个整形变量iYear,iMonth,iDay分别表示年月日。然后使用Format方法返回一个string类型值。把该值赋值给字符串date。最后对date进行输出。

格式化字符串漏洞研究

格式化字符串漏洞研究 杜旭涛1,2,?邢春晓2,?周立柱1,? 1清华大学计算机系,北京100087 2清华大学WEB与软件技术中心,北京100087 摘要格式化字符串漏洞对计算机系统和网络具有很大的危胁。攻击者利用格式化字符串漏洞可以远程侵入网络上的计算机系统,偷看系统信息甚至得到系统的完全控制权。由于与传统的缓冲区溢出漏洞攻击的原理不同,对于缓冲区溢出漏洞进行防范的方法对于格式化字符串漏洞通常会失效。对于高可信软件来说,如何避免和防范格式化字符串漏洞的危害就显得格外重要。本文对格式化字符串漏洞进行了综合的介绍。指出了格式化字符串漏洞的成因和危害。使用多个例子从预防的角度说明了利用该漏洞进行攻击的基本原理。然后对相关的漏洞防范工具作了介绍。 关键词格式化字符串漏洞;shellcode;攻击;漏洞防范工具 Survey of Format String Vulnerability Xu-Tao Du1,2Chun-Xiao Xing2 1Department of Computer Science,Tsinghua University,Beijing100080 2Research Center of WEB and Software Engineeing,Tsinghua University,Beijing100080 Abstract Format string vulnerability is a vital threat to computer systems and networks.By exploiting the format string vulnerability,attackers can break into computer systems in the internet.They can get various information about the computer systems and can even get full control of them.Since the principle and methods of exploiting format string vulnerability and that of exploiting traditional buffer over?ow vulnerability are different,tools for preventing buffer over?ow attacks will usually fail in front of format string attacks.For the High-Con?dential Software,its very important to avoid and prevent from the damage of format string vulnerability.This paper introduce the format string vulnerability.After point out its origin and potential damage,we show the method to exploit this vulnerability through several concrete examples.Then we introduced some protecting tools for this vulnerability. Keywords Format String Vulnerability;Shellcode;Attack;Protecting Tools ?通讯作者。电子邮件:dxt05@https://www.360docs.net/doc/32154776.html, ?电子邮件:xingcx@https://www.360docs.net/doc/32154776.html, ?电子邮件:dcszlz@https://www.360docs.net/doc/32154776.html,

c语言三种方法把一个字符串复制到另一段字符串中

// 有一个字符数组a,在其中存放字符串“I am a boy.”,要求把该字符串复制到字符数组b 中。 /* #include int main() { char a[]="I am a boy."; char b[20]; int i; for(i=0;*(a+i)!='\0';i++) { *(b+i)=*(a+i); // 用地址法访问数组元素 } *(b+i)='\0'; printf("string a is: %s\n",a); printf("string b is:"); // for(i=0;b[i]!='\0';i++) for(i=0;*(b+i)!='\0';i++) { // printf("%c",b[i]); printf("%c",*(b+i)); } printf("\n"); return 0; } */ //用指针变量来实现 /* #include int main() { char a[]="I am a boy."; char b[20],*p1,*p2; int i; p1=a; p2=b; for(;*p1!='\0';*p1++,*p2++) { *p2=*p1; } *p2='\0'; printf("sting a is:%s\n",a); printf("string b is:");

// for(i=0;b[i]!='\0';i++) for(i=0;*(b+i)!='\0';i++) { // printf("%c",b[i]); printf("%c",*(b+i)); } printf("\n"); return 0; } */ // 用函数调用来实现 #include int main() { void copy_string(char *from,char *to); char *a="I am a teacher."; // 定义a为字符指针变量,指向一个字符串 char b[]="You are a student."; // 定义b为字符数组,内放一个字符串char *p=b; // 字符指针变量p指向字符数组b 的首元素 printf("string a=%s\nstring b=%s\n",a,p); printf("\ncopy string a to string b:\n"); copy_string(a,p); // 用字符串做形参 printf("string a=%s\nstring b=%s\n",a,b); return 0; } /* void copy_string(char *from,char *to) // 形参是字符指针变量 { for(;*from!='\0';from++,to++); // 只要a串没结束就复制到b数组 { *to=*from; } *to='\0'; } */ /* void copy_string(char *from,char *to) { while((*to=*from)!='\0') { to++; from++;

JAVA字符串格式化-String.format()的使用

JAVA字符串格式化-String.format()的使用 常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。 format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。 format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。 显示不同转换符实现不同数据类型到字符串的转换,如图所示。 转换符说明示例 %s 字符串类型"mingrisoft" %c 字符类型'm' %b 布尔类型true %d 整数类型(十进制)99 %x 整数类型(十六进制)FF %o 整数类型(八进制)77 %f 浮点类型99.99 %a 十六进制浮点类型FF.35AE %e 指数类型9.38e+5 %g 通用浮点类型(f和e类型中较短的) %h 散列码 %% 百分比类型% %n 换行符 %tx 日期与时间类型(x代表不同的日期与时间转换符 测试用例 [java]view plaincopy 1.public static void main(String[] args) { 2. String str=null;

3. str=String.format("Hi,%s", "王力"); 4. System.out.println(str); 5. str=String.format("Hi,%s:%s.%s", "王南","王力","王张"); 6. System.out.println(str); 7. System.out.printf("字母a的大写是:%c %n", 'A'); 8. System.out.printf("3>7的结果是:%b %n", 3>7); 9. System.out.printf("100的一半是:%d %n", 100/2); 10. System.out.printf("100的16进制数是:%x %n", 100); 11. System.out.printf("100的8进制数是:%o %n", 100); 12. System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85); 13. System.out.printf("上面价格的16进制数是:%a %n", 50*0.85); 14. System.out.printf("上面价格的指数表示:%e %n", 50*0.85); 15. System.out.printf("上面价格的指数和浮点数结果的长度较短的 是:%g %n", 50*0.85); 16. System.out.printf("上面的折扣是%d%% %n", 85); 17. System.out.printf("字母A的散列码是:%h %n", 'A'); 18.} 输出结果 [plain]view plaincopy 1.Hi,王力 2.Hi,王南:王力.王张 3.字母a的大写是:A 4.3>7的结果是:false 5.100的一半是:50 6.100的16进制数是:64 7.100的8进制数是:144 8.50元的书打8.5折扣是:42.500000 元 9.上面价格的16进制数是:0x1.54p5 10.上面价格的指数表示:4.250000e+01 11.上面价格的指数和浮点数结果的长度较短的是:42.5000 12.上面的折扣是85% 13.字母A的散列码是:41 搭配转换符的标志,如图所示。 标志说明示例结果+ 为正数或者负数添加符号("%+d",15) +15 ?左对齐("%-5d",15) |15 | 0 数字前面补0 ("%04d", 99) 0099 空格在整数之前添加指定数量的 空格 ("% 4d", 99) | 99| , 以“,”对数字分组("%,f", 9999.99) 9,999.990000

VB常用字符串操作函数解读

VB常用字符串操作函数2009/11/25 18:321. ASC(X,Chr(X:转换字符字符码[格式]: P=Asc(X 返回字符串X的第一个字符的字符码 P=Chr(X 返回字符码等于X的字符 [范例]:(1P=Chr(65 ‘ 输出字符A,因为A的ASCII码等于65 (2P=Asc(“A” ‘ 输出65 2. Len(X:计算字符串X的长度 [格式]: P=Len(X [说明]:空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算 一个字符。 [范例]: (1 令X=”” (空字符串 Len(X 输出结果为0 (2 令X=”abcd” Len(X 输出结果为4 (3 令X=”VB教程” Len(X 输出结果为4 3. Mid(X函数:读取字符串X中间的字符 [格式]: P=Mid(X,n 由X的第n个字符读起,读取后面的所有字符。 P=Mid(X,n,m 由X的第n个字符读起,读取后面的m个字符。 [范例]: (1 X=”abcdefg” P=Mid(X,5 结果为:P=”efg” (2 X=”abcdefg” P=Mid(X,2,4 结果为 P=”bcde” 4. R eplace: 将字符串中的某些特定字符串替换为其他字符串 [格式]: P=Replace(X,S,R [说明]:将字符串X中的字符串S替换为字符串R,然后返回。[范例]:X=”VB is very good” P=Replace(X,good,nice 输出结果为:P=”VB is very nice” 5. StrReverse:反转字符串 [格式]: P=StrReverse(X [说明]:返回X参数反转后的字符串 [范例]:(1)X=”abc” P=StrReverse(X 输出结果:P=”cba” 6. Ucase(X,Lcase(X:转换英文字母的大小写 [格式]:P=Lcase(X ‘ 将X字符串中的大写字母转换成小写P=Ucase(X ‘ 将X字符串中的小写字母转换成大写 [说明]:除了英文字母外,其他字符或中文字都不会受到影响。 [范例]:(1)令X=”VB and VC” 则Lcase(X的结果为”vb and vc”,Ucase(X的结果为”VB AND VC” 7. InStr函数:寻找字符串 [格式]: P=InStr(X,Y 从X第一个字符起找出Y出现的位置 P=InStr(n,X,Y 从X第n个字符起找出Y出现的位置 [说明]:(1)若在X中找到Y,则返回值是Y第一个字符出现在X中的位置。(2) InStr(X,Y相当于 InStr(1,X,Y。(3)若字符串长度,或X为空字符串,或在X中找不到Y,则都 返回0。(4)若Y为空字符串,则返回0。 ---------------------------------------------------------------------------------------------- mid(字符串,从第几个开始,长度 ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如 mid("小欣无敌",1,3 则返回 "小欣无" instr(从第几个开始,字符串1,字符串2 ByVal 从规定的位置开始查找,返回字符

java 字符串常用函数及其用法

java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。 String相关函数 1)substring() 它有两种形式,第一种是:String substring(int startIndex) 第二种是:String substring(int startIndex,int endIndex) 2)concat() 连接两个字符串 例:String s="Welcome to "; String t=s.concat("AnHui"); 3)replace() 替换 它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下: String replace(char original,char replacement) 例如:String s=”Hello”.replace(’l',’w'); 第二种形式是用一个字符序列替换另一个字符序列,形式如下: String replace(CharSequence original,CharSequence replacement) 4)trim() 去掉起始和结尾的空格 5)valueOf() 转换为字符串 6)toLowerCase() 转换为小写 7)toUpperCase() 转换为大写 8)length() 取得字符串的长度 例:char chars[]={’a',’b’.’c'}; String s=new String(chars); int len=s.length(); 9)charAt() 截取一个字符 例:char ch; ch=”abc”.charAt(1); 返回值为’b’ 10)getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart) sourceStart 指定了子串开始字符的下标 sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。

c语言格式化说明符(输出格式)

c语言格式化说明符 1.1.1 格式化输入输出函数 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 —————————————————————————— %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数

%x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。 但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度 为4位。 如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度, 小数点前的数字代表最小宽度。 例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。 (2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。 例如: %ld 表示输出long整数 %lf 表示输出double浮点数 (3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可 说明输出为左对齐, 否则为右对齐。 例如: %-7d 表示输出7位整数左对齐

Pascal常用字符串函数

一、数学函数: Inc(i) 使I:=I+1; Inc(I,b) 使I:=I+b; Abs(x) 求x的绝对值例:abs(-3)=3 Chr(x) 求编号x对应的字符。例:Chr(65)=’A’ chr(97)=’a’ chr(48)=’0’ Ord(x) 求字符x对应的编号。例:ord(‘A’)=65 ord(‘a’)=97 另外:ord(false)=0 o rd(true)=1 Sqr(x) 求x的平方。例:sqr(4)=16 Sqrt(x)求x的开方. 例:sqrt(16)=4 round(x) 求x的四舍五入例:round(4.5)=5 trunc(x) 求x的整数部分例:trunc(5.6)=5 结果是integer型 int(x) 求x的整数部分例int(5.6)=5.0 结果是real型 frac (x)求x的小数部分例frac(5.6)=0.6 pred(x) 求x的前导pred(‘b’)=’a’ pred(5)=4 pred(true)=false succ(x) 求x的后继succ(‘b’)=’c’ succ(5)=6 succ(false)=true odd(x) 判断x是否为奇数。如果是值为true,反之值为false. Odd(2)=false od d(5)=true power(a,n) 求a的n次方power(2,3)=8 exp(b*ln(a)) a的b次方 random 取0~1之间的随机数(不能取到1) randomize 随机数的种子函数,在每次设置随机数时都要把这个函数放在最前面. Fillchar(a,size(a),0) 数组初始化,即把数组a的值全部置为0 SHR: x SHR n 把x换成二进制后向右移n位,相当于把x 除以2n a shr n 等价于a div (2^n) SHL: x SHL n把x换成二进制后向左移n位,相当于把x 乘以2n 二、字符串函数 1. 连接运算concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn. 例:concat(‘11’,’aa’)=’11aa’; 2. 求子串。Copy(s,i,L) 从字符串s中截取第i个字符开始后的长度为L的子串。 例:copy(‘abdag’,2,3)=’bda’ 3. 删除子串。过程Delete(s,i,L) 从字符串s中删除第i个字符开始后的长度为L的子串。

java中常用的一些方法

java中常用的一些方法 字符串 1、获取字符串的长度 length() 2 、判断字符串的前缀或后缀与已知字符串是否相同 前缀startsWith(String s) 后缀endsWith(String s) 3、比较两个字符串 equals(String s) 4、把字符串转化为相应的数值 int型Integer.parseInt(字符串) long型Long.parseLong(字符串) float型Folat.valueOf(字符串).floatValue() double型Double.valueOf(字符串).doubleValue() 4、将数值转化为字符串 valueOf(数值) 5、字符串检索 indexOf(Srting s) 从头开始检索 indexOf(String s ,int startpoint) 从startpoint处开始检索 如果没有检索到,将返回-1 6、得到字符串的子字符串 substring(int startpoint) 从startpoint处开始获取 substring(int start,int end) 从start到end中间的字符 7、替换字符串中的字符,去掉字符串前后空格 replace(char old,char new) 用new替换old trim() 8、分析字符串 StringTokenizer(String s) 构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符)StringTokenizer(String s,String delim) delim是自己定义的分隔符

nextToken() 逐个获取字符串中的语言符号 boolean hasMoreTokens() 只要字符串还有语言符号将返回true,否则返回false countTokens() 得到一共有多少个语言符号 文本框和文本区 1、文本框 TextField() 构造文本框,一个字符长 TextField(int x) 构造文本框,x个字符长 TextField(String s) 构造文本框,显示s setText(String s) 设置文本为s getText() 获取文本 setEchoChar(char c) 设置显示字符为c setEditable(boolean) 设置文本框是否可以被修改 addActionListener() 添加监视器 removeActionListener() 移去监视器 2、文本区 TextArea() 构造文本区 TextArea(String s) 构造文本区,显示s TextArea(String s,int x,int y) 构造文本区,x行,y列,显示s TextArea(int x,int y) 构造文本区,x行,y列 TextArea(String s,int x,ing y,int scrollbar) scrollbar的值是: TextArea.SCROLLBARS_BOTH TextArea.SCROLLBARS_VERTICAL_ONLY TextArea.SCROLLBARS_HORIZONTAL_ONLY TextArea.SCROLLBARS_NONE setText(String s) 设置文本为s

C#中字符串常用的处理方法

* 计算字符串的长度* string myString = "This is a test!"; Console.WriteLine("Text is :{0}",myString); Console.WriteLine("Text's long is :{0}",myString.Length); * 转换大小写* myString = myString.ToLower(); //所有字符转换成小写 myString = myString.ToUpper(); //所有字符转换成大写 * 删除前后空格* myString = myString.Trim(); //同时删除字符串前后的空格 char[] trimChars = {' ','e','s'}; //准备删除的字符 myString = myString.Trim(trimChars); //删除所有指定字符 myString = myString.TrimEnd(); //删除字符串后的空格 myString = myString.TrimStart(); //删除字符串前的空格 * 添加空格* myString = myString.PadRight(14,' '); //当字符串长度不够14位时,在他的右边用指定字符填充 myString = myString.PadLeft(14,' '); //当字符串长度不够14位时,在他的左边用指定字符填充* 拆分字符串* string[] nStrs = myString.Split(' ',3); //按照空格进行拆分,并且返回前三个字符串 * 获取子字符串* string a = myString.Substring(2,2); //从myString字符串的第三位开始获取两个字符,因为索引 起始位是0 * 替换字符串中的字符* string a = myString.Replace("i","o"); //将这个字符串中的所有“i”替换成“o” C#中字符串实际上是Char变量的只读数组。可以用下面的方法访问字符串中每一个字符,但是不能修 改他们。 string myString = "This is a test!"; foreach (char myChar in myString) { Console.Write("{0}",myChar); }

acm常用字符串处理函数

sstrstr与strchar用法 原型:extern char *strstr(char *haystack, char *needle); 用法:#include 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 举例: #include #include main() { char *s="Golden Global View"; char *l="lob"; char *p; clrscr(); p=strstr(s,l); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; } 语法:int strstr(str1,str2) str1: 被查找目标string expression to search. str2:要查找对象The string expression to find. 该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0. 例子: 功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy” (假设xxx和yyy都是一个未知的字串) char *s=” string1 onexxx string2 oneyyy”; char *p; p=strstr(s,”string2”); if(!p) printf(“Not Found!”); p=strstr(p,”one”); if(!p) printf(“Not Found!”); p+=strlen(“one”) printf(“%s”,p); 说明:如果直接写语句p=strstr(p,”one”),则找到的是xxx,不符合要求 所以需采用二次查找法找到目标

前端常用的20个字符串方法和使用方式

前端常用的20个字符串方法和使用方式主要给大家整理下js中常用的字符串的方法和其使用方式,希望对大家今后的工作有所帮助。 1.charAt(x) charAt(x)返回字符串中x位置的字符,下标从0开始。 //charAt(x) var myString='jQuery FTW!!!'; console.log(myString.charAt(7)); //output:F 2.charCodeA(x) charCodeAt(x)返回字符串中x位置处字符的unicode值。t(x) //charCodeAt(position) var message="jquery4u" //alert"113" alert(message.charCodeAt(1) 3.concat(v1,v2..) concat()方法用于连接两个或多个字符串,此方法不改变现有的字符串,返回拼接后的新的字符串。 //concat(v1,v2,..) var message="Sam" var final=message.concat("is a","hopeless romantic.") //alerts"Sam is a hopeless romantic."

alert(final) 4.fromCharcode(c1,c2) fromCharcode(c1,c2)转换一组Unicode值转换为字符。 //fromCharCode(c1,c2,...) console.log(String.fromCharCode(97,98,99,120,121,122)) //output:abcxyz console.log(String.fromCharCode(72,69,76,76,79)) //output:HELLO 5.indexOf(substr,[start]) indexOf方法搜索并(如果找到)返回字符串中搜索到的字符或子字符串的索引。如果没有找到,则返回-1。Start是一个可选参数,指定字符串中开始搜索的位置,默认值为0。 //indexOf(char/substring) var sentence="Hi,my name is Sam!" if(sentence.indexOf("Sam")!=-1) alert("Sam is in there!") https://www.360docs.net/doc/32154776.html,stIndexOf(substr,[start]) lastIndexOf()方法返回指定文本在字符串中最后一次出现的索引,如果未找到,则返回-1。“Start”是一个可选参数,指定字符串中开始搜索的位置,默认值为string.length-1。 //lastIndexOf(substr,[start]) var myString='javascript rox';

c++格式化字符串

格式化字符串——以C++的名义(zt) 2009-12-22 10:59 从第一堂C语言课上的那个printf开始,格式化字符串就成了我的梦魇。此后我还在很多地方遇到过它们:fprintf,sscanf以及CString的Format成员函数……。除了能记住%s(String 的缩写)代表字符串,%d(Decimal的缩写)代表整数之外,每次用到格式化字符串的地方我都要求助于MSDN。 直到我看到C++的字符串格式化方式后,我决定从此抛弃C的那套格式化字符串的方法。在C++里格式化字符串,用到的最多的类是:ostringstream以及它的宽字符版本wostringstream。 话不多说,如果要将一个整数n格式化成字符串以便输出之用 CString的方式是这样的: CStringstr; str.Format(_T("%d"), n); ostringstream的方式: ostringstreamost; ost<

JAVA中常用类的常用方法

JAVA中常用类的常用方法 一、类 1、clone()方法 创建并返回此对象的一个副本。要进行“克隆”的对象所属的类必须实现. Cloneable接口。 2、equals(Object obj)方法 功能:比较引用类型数据的等价性。 等价标准:引用类型比较引用,基本类型比较值。 存在特例:对File、String、Date及封装类等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例。 3、finalize()方法 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 4、hashCode()方法返回该对象的哈希码值。 5、notify()方法唤醒在此对象监视器上等待的单个线程。 6、notifyAll()方法唤醒在此对象监视器上等待的所有线程。 7、toString()方法 返回该对象的字符串表示。在进行String与其它类型数据的连接操作时,自动调用toString()方法。可以根据需要重写toString()方法。 8、wait()方法 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。

二、字符串相关类 l String类 charAt(int index) 返回指定索引处的 char 值。 compareTo(String anotherString) 按字典顺序比较两个字符串。compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。concat(String str) 将指定字符串连接到此字符串的结尾。 endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 equals(Object anObject) 将此字符串与指定的对象比较。 equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。 indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。length() 返回此字符串的长度。 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 split(String regex) 根据给定正则表达式的匹配拆分此字符串。 startsWith(String prefix) 测试此字符串是否以指定的前缀开始。 substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。

字符串处理常用方法

C# string类应用 判断是否包含子串 想要判断一个字符串中是否包含某个子串,可以用Contains方法来实现: public bool Contains (string value) 参数value为待判定的子串。如果包含,返回true;否则返回false。下面的代码判断“Hello”中是否包含两个子串。 1.bool b1 = strA.Contains("ll"); //true 2.Bool b1=strA.Contains("MM"); //false 4.1.4 定位字符和子串 定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。在String类中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny,下面进行详细介绍。 1.IndexOf/LastIndexOf IndexOf方法用于搜索在一个字符串中,某个特定的字符或者子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的重载形式如下所示。 (1)定位字符 int IndexOf(char value) int IndexOf(char value, int startIndex)

int IndexOf(char value, int startIndex, int count) (2)定位子串: int IndexOf(string value) int IndexOf(string value, int startIndex) int IndexOf(string value, int startIndex, int count) 在上述重载形式中,其参数含义如下: value:待定位的字符或者子串。 startIndex:在总串中开始搜索的其实位置。 count:在总串中从起始位置开始搜索的字符数。 下面的代码在“Hello”中寻找字符…l?第一次出现的位置。 代码4-7 使用IndexOf寻找字符第一次出现位置:Default.aspx.cs 1. String s=”Hello”; 2. int I = s.IndexOf(…l?)); //2 同IndexOf类似,LastIndexOf用于搜索在一个字符串中,某个特定的字符或者子串最后一次出现的位置,其方法定义和返回值都与IndexOf相同,不再赘述。 2.IndexOfAny/LastIndexOfAny IndexOfAny方法功能同IndexOf类似,区别在于,它可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。同样,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的IndexOfAny 重载形式有3种:

C语言字符输出格式化

几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型; int、short、long也是三种互不相同的类型。 可以使用C++的函数重载特性进行验证,如: void Func(char ch) {} void Func(signed char ch) {} void Func(unsigned char ch) {} 是三个不同的函数。 2. char/signed char/unsigned char型数据长度为1字节; char为有符号型,但与signed char是不同的类型。 注意! 并不是所有编译器都这样处理,char型数据长度不一定为1字节,char也不一定为有符号型。 3. 将char/signed char转换为int时,会对最高符号位1进行扩展,从而造成运算问题。 所以,如果要处理的数据中存在字节值大于127的情况,使用unsigned char较为妥当。 程序中若涉及位运算,也应该使用unsigned型变量。 4. char/signed char/unsigned char输出时,使用格式符%c(按字符方式); 或使用%d、%u、%x/%X、%o,按整数方式输出; 输入时,应使用%c,若使用整数方式,Dev-C++会给出警告,不建议这样使用。 5. int的长度,是16位还是32位,与编译器字长有关。 16位编译器(如TC使用的编译器)下,int为16位;32位编译器(如VC使用的编译器cl.exe)下,int为32位。 6. 整型数据可以使用%d(有符号10进制)、%o(无符号8进制)或%x/%X(无符号16进制)方式输入输出。而格式符%u,表示unsigned,即无符号10进制方式。 7. 整型前缀h表示short,l表示long。 输入输出short/unsigned short时,不建议直接使用int的格式符%d/%u等,要加前缀h。

相关文档
最新文档