STRING类函数用法总结3

STRING类函数用法总结3
STRING类函数用法总结3

C++中的string类

前言:string的角色

1string使用

1.1充分使用string操作符

1.2眼花缭乱的string find函数

1.3string insert,replace,erase2string和C风格字符串

3string和Charactor Traits

4string建议

5小结

6附录前言:string的角色

C++语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触perl,php,和Shell脚本以后,开始理解了以前为什么有人说C++文本处理不方便了。

举例来说,如果文本格式是:用户名电话号码,文件名name.txt

Tom23245332

Jenny22231231

Heny22183942

Tom23245332

...

现在我们需要对用户名排序,且只输出不同的姓名。

那么在shell编程中,可以这样用:

awk'{print$1}'name.txt|sort|uniq

简单吧?

如果使用C/C++就麻烦了,他需要做以下工作:

先打开文件,检测文件是否打开,如果失败,则退出。

声明一个足够大得二维字符数组或者一个字符指针数组

读入一行到字符空间

然后分析一行的结构,找到空格,存入字符数组中。

关闭文件

写一个排序函数,或者使用写一个比较函数,使用qsort排序

遍历数组,比较是否有相同的,如果有,则要删除,copy...

输出信息

你可以用C++或者C语言去实现这个流程。如果一个人的主要工作就是处理这种

类似的文本(例如做apache的日志统计和分析),你说他会喜欢C/C++么?

当然,有了STL,这些处理会得到很大的简化。我们可以使用fstream来代替麻烦的fopen fread fclose,用vector来代替数组。最重要的是用string来代替char*数组,使用sort排序算法来排序,用unique函数来去重。听起来好像很不错。看看下面代码(例程1):

#i nclude

#i nclude

#i nclude

#i nclude

#i nclude

using namespace std;

int main(){

ifstream in("name.txt");

string strtmp;

vectorvect;

while(getline(in,strtmp,'\n'))

vect.push_back(strtmp.substr(0,strtmp.find('')));

sort(vect.begin(),vect.end());

vector::iterator it=unique(vect.begin(),vect.end());

copy(vect.begin(),it,ostream_iterator(cout,"\n"));

return0;

}

也还不错吧,至少会比想象得要简单得多!(代码里面没有对错误进行处理,只是为了说明问题,不要效仿).

当然,在这个文本格式中,不用vector而使用map会更有扩充性,例如,还可通过人名找电话号码等等,但是使用了map就不那么好用sort了。你可以用map 试一试。

这里string的作用不只是可以存储字符串,还可以提供字符串的比较,查找等。在sort和unique函数中就默认使用了less和equal_to函数,上面的一段代码,其实使用了string的以下功能:

存储功能,在getline()函数中

查找功能,在find()函数中

子串功能,在substr()函数中

string operator<,默认在sort()函数中调用

string operator==,默认在unique()函数中调用

总之,有了string后,C++的字符文本处理功能总算得到了一定补充,加上配合STL其他容器使用,其在文本处理上的功能已经与perl,shell,php的距离缩小很多了。因此掌握string会让你的工作事半功倍。

1string使用

其实,string并不是一个单独的容器,只是basic_string模板类的一个typedef 而已,相对应的还有wstring,你在string头文件中你会发现下面的代码:

extern"C++"{

typedef basic_stringstring;

typedef basic_stringwstring;

}//extern"C++"

由于只是解释string的用法,如果没有特殊的说明,本文并不区分string和basic_string的区别。

string其实相当于一个保存字符的序列容器,因此除了有字符串的一些常用操作以外,还有包含了所有的序列容器的操作。字符串的常用操作包括:增加、删除、修改、查找比较、链接、输入、输出等。详细函数列表参看附录。不要害怕这么多函数,其实有许多是序列容器带有的,平时不一定用的上。

如果你要想了解所有函数的详细用法,你需要查看basic_string,或者下载STL 编程手册。这里通过实例介绍一些常用函数。

1.1充分使用string操作符

string重载了许多操作符,包括+,+=,<,=,,[],<<,>>等,正式这些操作符,对字符串操作非常方便。先看看下面这个例子:tt.cpp(例程2)

#i nclude

#i nclude

using namespace std;

int main(){

string strinfo="Please input your name:";

cout<

cin>>strinfo;

if(strinfo=="winter")

cout<<"you are winter!"<

else if(strinfo!="wende")

cout<<"you are not wende!"<

else if(strinfo<"winter")

cout<<"your name should be ahead of winter"<

else

cout<<"your name should be after of winter"<

strinfo+=",Welcome to China!";

cout<

cout<<"Your name is:"<

string strtmp="How are you?"+strinfo;

for(int i=0;i

cout<

return0;

}

下面是程序的输出

-bash-2.05b$make tt

c++-O-pipe-march=pentiumpro tt.cpp-o tt

-bash-2.05b$./tt

Please input your name:Hero

you are not wende!

Hero,Welcome to China!

How are you?Hero,Welcome to China!

有了这些操作符,在STL中仿函数都可以直接使用string作为参数,例如less, great,equal_to等,因此在把string作为参数传递的时候,它的使用和int或者float等已经没有什么区别了。例如,你可以使用:

mapmymap;

//以上默认使用了less

有了operator+以后,你可以直接连加,例如:

string strinfo="Winter";

string strlast="Hello"+strinfo+"!";

//你还可以这样:

string strtest="Hello"+strinfo+"Welcome"+"to China"+"!";

看见其中的特点了吗?只要你的等式里面有一个string对象,你就可以一直连续"+",但有一点需要保证的是,在开始的两项中,必须有一项是string对象。其原理很简单:

系统遇到"+"号,发现有一项是string对象。

系统把另一项转化为一个临时string对象。

执行operator+操作,返回新的临时string对象。

如果又发现"+"号,继续第一步操作。

由于这个等式是由左到右开始检测执行,如果开始两项都是const char*,程序自己并没有定义两个const char*的加法,编译的时候肯定就有问题了。

有了操作符以后,assign(),append(),compare(),at()等函数,除非有一些特殊的需求时,一般是用不上。当然at()函数还有一个功能,那就是检查下标是否合法,如果是使用:

string str="winter";

//下面一行有可能会引起程序中断错误

str[100]='!';

//下面会抛出异常:throws:out_of_range

cout<

了解了吗?如果你希望效率高,还是使用[]来访问,如果你希望稳定性好,最好使用at()来访问。

1.2眼花缭乱的string find函数

由于查找是使用最为频繁的功能之一,string提供了非常丰富的查找函数。其列表如下:

函数名描述find查找rfind反向查找find_first_of查找包含子串中的任何字符,返回第一个位置find_first_not_of查找不包含子串中的任何字符,返回第一个位置find_last_of查找包含子串中的任何字符,返回最后一个位置find_last_not_of查找不包含子串中的任何字符,返回最后一个位置以上函数都是被重载了4次,以下是以find_first_of函数为例说明他们的参数,其他函数和其参数一样,也就是说总共有24个函数:

size_type find_first_of(const basic_string&s,size_type pos=0)

size_type find_first_of(const charT*s,size_type pos,size_type n) size_type find_first_of(const charT*s,size_type pos=0)

size_type find_first_of(charT c,size_type pos=0)

所有的查找函数都返回一个size_type类型,这个返回值一般都是所找到字符串的位置,如果没有找到,则返回string::npos。有一点需要特别注意,所有和string::npos的比较一定要用string::size_type来使用,不要直接使用int或者unsigned int等类型。其实string::npos表示的是-1,看看头文件:

template

const basic_string<_CharT,_Traits,_Alloc>::size_type

basic_string<_CharT,_Traits,_Alloc>::npos

=basic_string<_CharT,_Traits,_Alloc>::size_type)-1;

find和rfind都还比较容易理解,一个是正向匹配,一个是逆向匹配,后面的参数pos都是用来指定起始查找位置。对于find_first_of和find_last_of就不是那么好理解。

find_first_of是给定一个要查找的字符集,找到这个字符集中任何一个字符所在字符串中第一个位置。或许看一个例子更容易明白。

有这样一个需求:过滤一行开头和结尾的所有非英文字符。看看用string如何实现:

#i nclude

#i nclude

using namespace std;

int main(){

string strinfo="//*---Hello Word!......------";

string strset="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; int first=strinfo.find_first_of(strset);

if(first==string::npos){

cout<<"not find any characters"<

return-1;

}

int last=strinfo.find_last_of(strset);

if(last==string::npos){

cout<<"not find any characters"<

return-1;

}

cout<

return0;

}

这里把所有的英文字母大小写作为了需要查找的字符集,先查找第一个英文字母的位置,然后查找最后一个英文字母的位置,然后用substr来的到中间的一部分,用于输出结果。下面就是其结果:

Hello Word

前面的符号和后面的符号都没有了。像这种用法可以用来查找分隔符,从而把一个连续的字符串分割成为几部分,达到shell命令中的awk的用法。特别是当分隔符有多个的时候,可以一次指定。例如有这样的需求:

张三|3456123,湖南

李四,4564234|湖北

王小二,4433253|北京

...

我们需要以"|"","为分隔符,同时又要过滤空格,把每行分成相应的字段。可以作为你的一个家庭作业来试试,要求代码简洁。

1.3string insert,replace,erase

了解了string的操作符,查找函数和substr,其实就已经了解了string的80%的操作了。insert函数,replace函数和erase函数在使用起来相对简单。下面以一个例子来说明其应用。

string只是提供了按照位置和区间的replace函数,而不能用一个string字串来替换指定string中的另一个字串。这里写一个函数来实现这个功能:

void string_replace(string&strBig,const string&strsrc,const string &strdst){

string::size_type pos=0;

string::size_type srclen=strsrc.size();

string::size_type dstlen=strdst.size();

while((pos=strBig.find(strsrc,pos))!=string::npos){

strBig.replace(pos,srclen,strdst);

pos+=dstlen;

}

}看看如何调用:

#i nclude

#i nclude

using namespace std;

int main(){

string strinfo="This is Winter,Winter is a programmer.Do you know Winter?";

cout<<"Orign string is:\n"<

string_replace(strinfo,"Winter","wende");

cout<<"After replace Winter with wende,the string is:\n"<

}其输出结果:

Orign string is:

This is Winter,Winter is a programmer.Do you know Winter?

After replace Winter with wende,the string is:

This is wende,wende is a programmer.Do you know wende?如果不用replace 函数,则可以使用erase和insert来替换,也能实现string_replace函数的功能:

void string_replace(string&strBig,const string&strsrc,const string &strdst){

string::size_type pos=0;

string::size_type srclen=strsrc.size();

string::size_type dstlen=strdst.size();

while((pos=strBig.find(strsrc,pos))!=string::npos){

strBig.erase(pos,srclen);

strBig.insert(pos,strdst);

pos+=dstlen;

}

}当然,这种方法没有使用replace来得直接。

2string和C风格字符串

现在看了这么多例子,发现const char*可以和string直接转换,例如我们在上面的例子中,使用

string_replace(strinfo,"Winter","wende");来代用

void string_replace(string&strBig,const string&strsrc,const string &strdst)在C语言中只有char*和const char*,为了使用起来方便,string 提供了三个函数满足其要求:

const charT*c_str()const

const charT*data()const

size_type copy(charT*buf,size_type n,size_type pos=0)const其中:c_str直接返回一个以\0结尾的字符串。

data直接以数组方式返回string的内容,其大小为size()的返回值,结尾并没有\0字符。

copy把string的内容拷贝到buf空间中。

你或许会问,c_str()的功能包含data(),那还需要data()函数干什么?看看源码:

const charT*c_str()const

{if(length()==0)return"";terminate();return data();}原来

c_str()的流程是:先调用terminate(),然后在返回data()。因此如果你对效率要求比较高,而且你的处理又不一定需要以\0的方式结束,你最好选择

data()。但是对于一般的C函数中,需要以const char*为输入参数,你就要使用c_str()函数。

对于c_str()data()函数,返回的数组都是由string本身拥有,千万不可修改其内容。其原因是许多string实现的时候采用了引用机制,也就是说,有可能几个string使用同一个字符存储空间。而且你不能使用sizeof(string)来查看其大小。详细的解释和实现查看Effective STL的条款15:小心string实现的多样性。

另外在你的程序中,只在需要时才使用c_str()或者data()得到字符串,每调用一次,下次再使用就会失效,如:

string strinfo("this is Winter");

...

//最好的方式是:

foo(strinfo.c_str());

//也可以这么用:

const char*pstr=strinfo.c_str();

foo(pstr);

//不要再使用了pstr了,下面的操作已经使pstr无效了。

strinfo+="Hello!";

foo(pstr);//错误!会遇到什么错误?当你幸运的时候pstr可能只是指向"this is Winter Hello!"的字符串,如果不幸运,就会导致程序出现其他问题,总会有一些不可遇见的错误。总之不会是你预期的那个结果。

3string和Charactor Traits

了解了string的用法,该详细看看string的真相了。前面提到string只是basic_string的一个typedef。看看basic_string的参数:

template,

class Allocator=allocator>

class basic_string

{

//...

}char_traits不仅是在basic_string中有用,在basic_istream和

basic_ostream中也需要用到。

就像Steve Donovan在过度使用C++模板中提到的,这些确实有些过头了,要不是系统自己定义了相关的一些属性,而且用了个typedef,否则还真不知道如何使用。

但复杂总有复杂道理。有了char_traits,你可以定义自己的字符串类型。当然,有了char_traits和char_traits你的需求使用已经足够了,为了更好的理解string,咱们来看看char_traits都有哪些要求。

如果你希望使用你自己定义的字符,你必须定义包含下列成员的结构:表达式描述

char_type字符类型

int_type int类型

pos_type位置类型

off_type表示位置之间距离的类型

state_type表示状态的类型

assign(c1,c2)把字符c2赋值给c1

eq(c1,c2)判断c1,c2是否相等

lt(c1,c2)判断c1是否小于c2

length(str)判断str的长度

compare(s1,s2,n)比较s1和s2的前n个字符

copy(s1,s2,n)把s2的前n个字符拷贝到s1中

move(s1,s2,n)把s2中的前n个字符移动到s1中

assign(s,n,c)把s中的前n个字符赋值为c

find(s,n,c)在s的前n个字符内查找c

eof()返回end-of-file

to_int_type(c)将c转换成int_type

to_char_type(i)将i转换成char_type

not_eof(i)判断i是否为EOF

eq_int_type(i1,i2)判断i1和i2是否相等

想看看实际的例子,你可以看看sgi STL的char_traits结构源码.

现在默认的string版本中,并不支持忽略大小写的比较函数和查找函数,如果你想练练手,你可以试试改写一个char_traits,然后生成一个case_string 类,也可以在string上做继承,然后派生一个新的类,例如:ext_string,提供一些常用的功能,例如:

定义分隔符。给定分隔符,把string分为几个字段。

提供替换功能。例如,用winter,替换字符串中的wende

大小写处理。例如,忽略大小写比较,转换等

整形转换。例如把"123"字符串转换为123数字。

这些都是常用的功能,如果你有兴趣可以试试。其实有人已经实现了,看看Extended STL string。如果你想偷懒,下载一个头文件就可以用,有了它确实

方便了很多。要是有人能提供一个支持正则表达式的string,我会非常乐意用。

4string建议

使用string的方便性就不用再说了,这里要重点强调的是string的安全性。string并不是万能的,如果你在一个大工程中需要频繁处理字符串,而且有可能是多线程,那么你一定要慎重(当然,在多线程下你使用任何STL容器都要慎重)。

string的实现和效率并不一定是你想象的那样,如果你对大量的字符串操作,而且特别关心其效率,那么你有两个选择,首先,你可以看看你使用的STL版本中string实现的源码;另一选择是你自己写一个只提供你需要的功能的类。string的c_str()函数是用来得到C语言风格的字符串,其返回的指针不能修改其空间。而且在下一次使用时重新调用获得新的指针。

string的data()函数返回的字符串指针不会以'\0'结束,千万不可忽视。

尽量去使用操作符,这样可以让程序更加易懂(特别是那些脚本程序员也可以看懂)

5小结

难怪有人说:

string使用方便功能强,我们一直用它!

6附录

string函数列表函数名描述

begin得到指向字符串开头的Iterator

end得到指向字符串结尾的Iterator

rbegin得到指向反向字符串开头的Iterator

rend得到指向反向字符串结尾的Iterator

size得到字符串的大小

length和size函数功能相同

max_size字符串可能的最大大小

capacity在不重新分配内存的情况下,字符串可能的大小

empty判断是否为空

operator[]取第几个元素,相当于数组

c_str取得C风格的const char*字符串

data取得字符串内容地址

operator=赋值操作符

reserve预留空间

swap交换函数

insert插入字符

append追加字符

push_back追加字符

operator+=+=操作符

erase删除字符串

clear清空字符容器中所有内容

resize重新分配空间

assign和赋值操作符一样

replace替代

copy字符串到空间

find查找

rfind反向查找

find_first_of查找包含子串中的任何字符,返回第一个位置

find_first_not_of查找不包含子串中的任何字符,返回第一个位置find_last_of查找包含子串中的任何字符,返回最后一个位置

find_last_not_of查找不包含子串中的任何字符,返回最后一个位置substr得到字串

compare比较字符串

operator+字符串链接

operator==判断是否相等

operator!=判断是否不等于

operator<判断是否小于

operator>>从输入流中读入字符串

operator<<字符串写入输出流

getline从输入流中读入一行

page的用法总结大全

page的用法总结大全 page这个单词你知道是什么意思吗?page的用法是怎样的呢,快来了解一下吧,今天小编给大家带来了page的用法 ,希望能够帮助到大家,一起来学习吧。 page的意思 n. 页,(计算机的)页面,年史, vt. 标记…的页数,翻页,喊出名字以寻找,(在公共传呼系统上)呼叫 vi. 翻书页,浏览 变形:过去式: paged; 现在分词:paging; page用法 page可以用作名词 page的基本意思是“页”,指书刊、杂志等的一页或报纸等的一版,也可指纸的一张,还可指报纸的“专页”。 page也可指可写入书中的历史事件或时期。 page用作动词的意思是“标记…的页数”或“翻页”。 page用作名词的用法例句 There are several faults in the page of figures.那一页的数字中有几个差错。 Open your German readers at page 28.把德语课本翻到第28页。 The page number is shown at the foot of the page.在页脚处可以看到页码。 page可以用作动词 page用作动词的意思是“标记…的页数”或“翻页”。 page也可作“呼叫…”解,指在公共场所通过扩音器呼喊找人。 page是及物动词,接名词或代词作宾语。 page用作动词的用法例句 When the book is ready for printing,someone has to page it up.书在付印前,必须有人排好页码。 He tore the sheet in his hurry to turn over the page.他匆忙翻页的时候,把杂志都撕坏了。 Absorbed, she licked her index finger absently each time she turned a page.她读得出神,每次翻页就不自觉地舔一下食指。

网络分析仪使用方法总结

如何使用网络分析仪 德力网络分析仪NA7682A NA7682A矢量网络分析仪吸取了前几代和国内外各款网络分析仪使用的经验,结合了最新国际仪器发展的技术和态势,是Deviser德力仪器最新推出的第四代矢量网络分析仪,作为国内主流的网络分析仪,下面介绍网络分析仪的使用技巧如下。 频率范围从100kHz到8.5GHz频段,为无线通信、广播电视、汽车电子、半导体和医疗器件等行业射频器件、组件的研发和生产的使用提供了高效、灵活的测试手段,进入了民品、工业、科研教育和军工等领域。其主要的特点是和主流网络分析仪是德的E507X系列指标和指令上做到兼容,在客户使用的性价比上非常优秀的选择。 在射频器件、基站天线、手机天线、GPS天线等、通信系统模块分析等领域成功的测试经验使越来越多的客户开始使用这款网络分析仪,在低频、800/900M、1800/1900M、2100M、5G/5.8G等的产品频率使用领域内广泛使用。 深圳市良源通科技有限公司专业服务和销售射频和通信仪表多年,是德力仪器国内最重要的合作伙伴和一级代理商,结合自己多年的技术积累和客户使用的配合测试,得到丰富经验。在仪器的售前和售后服务上面具有自己的优势。提供大量仪器试用和使用方案的设计,给客户在设备开发、产品研制和批量生产上都提供方便和最有优势的选择。 产品特点: 1、12.1英寸1280*800 TFT触摸屏 2、频率覆盖范围: 100 kHz 至 8.5 GHz 3、阻抗:50Ω 4、动态范围: >125 dB (比E5071C宽7-12dB) 5、极低的迹线噪声: <0.005 dBrms (在 3 kHz IFBW) 6、快速的测量速度: 80usec/点 7、分析和误差修正和校准功能 8、通过USB、LAN 和 GPIB 接口进行系统互联 9、时域分析(选件):时域传输、反射特性分析;距离上的故障定位。 10、数据变换:涉及多种形式的阻抗、导纳变换。 11、滤波器分析:自动分析出:插损、3dB带宽、6dB带宽、带内纹波、带外抑制、Q值、矩形系数

STRING类函数用法总结3

C++中的string类 前言:string的角色 1string使用 1.1充分使用string操作符 1.2眼花缭乱的string find函数 1.3string insert,replace,erase2string和C风格字符串 3string和Charactor Traits 4string建议 5小结 6附录前言:string的角色 C++语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触perl,php,和Shell脚本以后,开始理解了以前为什么有人说C++文本处理不方便了。 举例来说,如果文本格式是:用户名电话号码,文件名name.txt Tom23245332 Jenny22231231 Heny22183942 Tom23245332 ... 现在我们需要对用户名排序,且只输出不同的姓名。 那么在shell编程中,可以这样用: awk'{print$1}'name.txt|sort|uniq 简单吧? 如果使用C/C++就麻烦了,他需要做以下工作: 先打开文件,检测文件是否打开,如果失败,则退出。 声明一个足够大得二维字符数组或者一个字符指针数组 读入一行到字符空间 然后分析一行的结构,找到空格,存入字符数组中。 关闭文件 写一个排序函数,或者使用写一个比较函数,使用qsort排序 遍历数组,比较是否有相同的,如果有,则要删除,copy... 输出信息 你可以用C++或者C语言去实现这个流程。如果一个人的主要工作就是处理这种

C++string类型总结

对C++中string类型的总结 string类对象的构造 简化构造函数原型如下(注意,为了简便,把模板中最后一个默认参数省略了): 1: explicit basic_string(); 2: string(const char *s); 3: string(const char *s, size_type n); 4: string(const string& str); 5: string(const string& str, size_type pos, size_type n); 6: string(size_type n, E c); 7: string(const_iterator first, const_iterator last); string对象的操作 字符串比较 支持六种关系运算符(==、!=、>、>=、<、<=),其采用字典排序策略(与C中字符串比较策略完全一样)。这六个关系运算符是非成员的重载运算符。而这些 运算符都支持三种操作数组合:string op string、string op const char*、cons t char* op string(其中op是前面六种关系运算符中任意一种)。解释:提供运算 符的三种重载版本主要是从效率角度考虑的,其避免了临时string对象的产生。 另外,string类还提供了各种重载版本的成员函数compare来比较,简化函数原型为: 1: int compare(const string& str) const; 2: int compare(size_type p0, size_type n0, const string& str); 3: int compare(size_type p0, size_type n0, const string& str, si ze_type pos, size_type n); 4: int compare(const char* s) const; 5: int compare(size_type p0, size_type n0, const char* s) const; 6: int compare(size_type p0, size_type n0, const char* s, size_t ype n) const; 返回值:如果调用该函数的对象的比较序列小于操作数比较序列,则返回负数; 若相等,则返回0;否则,返回正数。

Seated的用法小结

Seated的用法小结 seated是一个比较特别的过去分词,说它特殊一是因为它的词性尚有不确定性——它有时是过去分词,有时又具有形容词的性质,像是一个形容词;二是因为这样一个很少引人注意的过去分词,在近几年的高考英语考题中经常“露脸”,一下子变成了一个热点词汇。下面我们先来看几道高考题: 1. Please remain __________ until the plane has come to a complete stop. (山东卷) A. to seat B. to be seated C. seating D. seated 2. Please remain __________; the winner of the prize will be announced soon. (辽宁卷) A. seating B. seated C. to seat D. to be seated 3. Can those _________ at the back of the classroom hear me? (福建卷) A. seat B. sit C. seated D. sat 对于seated的用法,首先要从动词seat说起。 同学们可能只知道seat的名词用法,即只知道它表示“座位”。 其实,seat还可用作动词,且是一个典型的及物动词,其意为“给某人座位”“让人坐”或“能容纳……”句式:sb be seated 或seat sb / oneself 。 如: Seat the boy next to his brother. 让那个孩子坐在他哥哥旁边。 We can seat 300 in the auditorium. 我们这个礼堂可容纳300人。

CPPstring类常用函数

C++string类常用函数 string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作: const char &operator[](int n)const; const char &at(int n)const; char &operator[](int n); char &at(int n); operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。 const char *data()const;//返回一个非null终止的c字符数组 const char *c_str()const;//返回一个以null终止的c字符串 int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目 string的特性描述: int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数) int max_size()const; //返回string对象中可存放的最大字符串的长度 int size()const; //返回当前字符串的大小 int length()const; //返回当前字符串的长度 bool empty()const; //当前字符串是否为空 void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分 string类的输入输出操作: string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。 函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。 string的赋值: string &operator=(const string &s);//把字符串s赋给当前字符串 string &assign(const char *s);//用c类型字符串s赋值 string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值 string &assign(const string &s);//把字符串s赋给当前字符串 string &assign(int n,char c);//用n个字符c赋值给当前字符串 string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串 string &assign(const_iterator first,const_itertor last);//把first和last迭代器之间的部

软件使用手册总结

1测控系统简介 本测控系统专为拉力机、压力机、电子万能材料试验机而研制。适用于测定各种材料在拉伸、压缩、弯曲、剪切、撕裂、剥离、穿刺等状态下的力学性能及有关物理参数。可做拉伸、压缩、三点抗弯、四点抗弯、剪切、撕裂、剥离、成品鞋穿刺、纸箱持压、泡棉循环压缩、弹簧拉压及各种动静态循环测试。 1.1主要功能特性 1. 硬件 主控制器采用21世纪最先进的32位ARM处理器, 处理速度达到奔腾级通用计算机的水平,相比传统的8位单片机测控系统整体性能大大提高,运算速度更快,控制精度更高. 数据采集核心器件采用美国最新型超高精度24位AD,采样速率可达2000次/秒,可捕捉到力量的瞬间变化过程,全程不分档分辨力最高达500000分度。并采用独创的6点校准技术进一步提高精度,力量测量精度优于国家0.5级(最高级)标准。 位移编码器计数采用4倍频技术,使位移分辨力提高4倍,最高可达0.0005mm。 脉冲和电压两种输出控制方式,可控制具有脉冲或电压控制接口的任意伺服马达、变频马达或直流马达实现平滑无级调速,另还有上升、下降及停止等开关量信号输出可用于直接驱动外部继电器或电磁阀,可用于控制直流电机或气动、液压等动力装置。 先进的速度、位移、力量三闭环技术,可以实现精确的任意波形控制。 丰富的接口扩展能力:多达4路24位模拟量输入,3路16位模拟量输出,3路脉冲输出,3路AB相光电编码器输入,9路开关量输入,8路开关量输出,1路USB接口,1路RS232接口,1路RS485接口,4种LCD接口,1个并口微型打印机接口,1个串口微型打印机接口,1个8×4矩阵键盘接口。 所有输入输出接口均采用高速光电隔离技术,具备强大的抗干扰能力。 2. 软件 Windows标准风格,层次分明的操作方式加上详尽的帮助文档和提示使之成为目前试验机行业最简单易用的软件,您的调试和软件培训效率将显著提高。 采用多线程并行处理技术,测试过程中实时同时显示力量-位移、力量-时间、位移-时间、应力-应变等曲线,可随意切换到想看的曲线画面,并可查看用户设置等。 标准化的测试过程控制和报表输出模版,使可以定义任意多个测试标准供用户调用,范围涵盖GB、ASTM、DIN、JIS、BS…等几乎所有测试标准。灵活强大的测试方法自定义方式,具备定速速、定位移、定力量、定力量速率、定应力、定应力速率、定应变、定应变速率等各种控制模式,可实现复杂的多步嵌套循环控制.可设置自动返回、自动判断断裂、自动归零等功能。 强大的数据分析统计和曲线图形分析辅助工具,具备放大、缩小、平移、十字光标、取点等功能。多次历史测试数据可调入图形同时显示做对比分析。多达7个区间设置、40个手动取点、120个自动取点功能。具备最大值、最小值、平均值、去高低平均值、中位数、标准差、总体标准差、CPK值等多种统计功能。 完全开放的测试结果编辑方法,用户可得到任何想要的测试结果。最大力、断裂力、剥离力、拉伸强度、剪切强度、撕裂强度、最大变形、屈服力、伸长率、弹性模量、环刚度、非比例延伸率、区间最小力、区间平均力、定伸长取力、定力量取伸长等多达400多个计算结果均由计算机自动算出,供用户选择调用。 业界创新的Microsoft Word报表格式,简单易用,只要您会使用Word,就可编辑出您想要的精美报表。 权限管理系统使您可以锁定软件的任意功能模块,将软件操作分为多个权限级别,没被授权的操作人员无法触及没被授权的模块,软件操作更加安全可靠。 全数字化的校准系统,校准过程简单高效,校准数据上下位机双重保护。 功能强大的单位系统,可以适应世界上任何单位制,如力值单位有gf、kgf、N、kN、tf、lbf、ozf、tf(SI)、tf (long)、tf(short)等供选择,更可扩展任意多种单位。 更多重的保护机制:力量、行程、位移超量程保护设定,上下限位行程开关硬件保护设定。 测试数据管理简单直观高效:单次测试数据以Windows标准的文档形式存储,自由设置储存路径和文件名。避免了传统测控软件以数据库格式储存测试数据时数据库文件会越来越大而导致软件运行越来越慢的缺点。只要您的硬盘足够大,测试数据可以无限量保存。 所有操作均具有快捷键,并可连接外部手动控制盒,可外接快上、快下、中上、中下、慢上、慢下、置零、回位、测试、暂停、结束等全部常用按健. 多国语言一键切换:简体中文、繁体中文、英文,十国语言版更有日文、韩文、俄文、德语、法语、西班牙文、葡萄牙文等即将推出。 绿色软件,无需安装,直接拷贝到计算机即可使用(需先安装串口驱动),维护升级更加简单。

string类的使用教程

这个是string类的使用教程,可以参考一下 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用= 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题……… 首先,为了在我们的程序中使用string类型,我们必须包含头文件。如下:#include //注意这里不是string.h string.h是C字符串头文件 1.声明一个C++字符串 声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。String类的构造函数和析构函数如下: a) string s; //生成一个空字符串s b) string s(str) //拷贝构造函数生成str的复制品 c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值 d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值 e) string s(cstr) //将C字符串作为s的初值 f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s 的初值。 g) string s(num,c) //生成一个字符串,包含num个c字符 h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 i) s.~string() //销毁所有字符,释放内存 都很简单,我就不解释了。 2.字符串操作函数 这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。 a) =,assign() //赋以新值 b) swap() //交换两个字符串的内容 c) +=,append(),push_back() //在尾部添加字符 d) insert() //插入字符 e) erase() //删除字符 f) clear() //删除全部字符 g) replace() //替换字符 h) + //串联字符串 i) ==,!=,<,<=,>,>=,compare() //比较字符串 j) size(),length() //返回字符数量

string类中函数介绍

标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用= 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题……… 首先,为了在我们的程序中使用string类型,我们必须包含头文件。 如下: #include //注意这里不是string.h string.h是C字符串头文件 #include using namespace std; 1.声明一个C++字符串 声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str 初始化为一个空字符串。String类的构造函数和析构函数如下: a) string s; //生成一个空字符串s b) string s(str) //拷贝构造函数生成str的复制品 c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值 d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值 e) string s(cstr) //将C字符串作为s的初值 f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。 g) string s(num,c) //生成一个字符串,包含num个c字符 h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 i) s.~string() //销毁所有字符,释放内存 都很简单,我就不解释了。 2.字符串操作函数 这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。 a) =,assign() //赋以新值 b) swap() //交换两个字符串的内容 c) +=,append(),push_back() //在尾部添加字符

C++string类标准库常用函数

C++ string类标准库常用函数 [string类的构造函数] string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 [string类的字符操作] const char &operator[](int n) const; const char &at(int n) const; char &operator[](int n); char &at(int n); operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range 异常,下标运算符[]不提供检查访问。 const char *data() const; //返回一个非null终止的c字符数组 const char *c_str() const; //返回一个以null终止的c字符串 int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目 [string的特性描述] int capacity() const; //返回当前容量(即string中不必增加内存即可存放的元素个数) int max_size() const; //返回string对象中可存放的最大字符串的长度 int size() const; //返回当前字符串的大小 int length() const; //返回当前字符串的长度 bool empty() const; //当前字符串是否为空 void resize(int len,char c); //把字符串当前大小置为len,并用字符c填充不足的部分 [string类的输入输出操作] string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。 函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。 [string的赋值] string &operator=(const string &s); //把字符串s赋给当前字符串 string &assign(const char *s); //用c类型字符串s赋值 string &assign(const char *s,int n); //用c字符串s开始的n个字符赋值 string &assign(const string &s); //把字符串s赋给当前字符串 string &assign(int n,char c); //用n个字符c赋值给当前字符串 string &assign(const string &s,int start,int n);//把s中从start开始的n个字符赋给当前字符串string &assign(const_iterator first,const_iterator last);//把迭代器first和last之间的部分赋给字符串 [string的连接] string &operator+=(const string &s); //把字符串s连接到当前字符串的结尾 string &append(const char *s); //把c类型字符串s连接到当前字符串结尾 string &append(const char *s,int n); //把c类型字符串s的前n个字符连接到当前字符串结尾 string &append(const string &s); //同operator+=() string &append(const string &s,int pos,int n); //把字符串s中从pos开始的n个字符连接到当前字符串的结尾 string &append(int n,char c); //在当前字符串结尾添加n个字符c string &append(const_iterator first,const_iterator last); //把迭代器first和last之间的部分连接到当前字符串的结尾

confident的详细用法总结大全

confident的详细用法总结大全 你知道confident的用法吗?快来一起学习吧,下面就和大家分享,来欣赏一下吧。 confident的用法总结大全 confident的意思 adj. 确信的,深信的;有信心的,沉着的;大胆的,过分自信的;厚颜无耻的 n. 知己;心腹朋友; confident的用法 用作形容词(adj.) 用作定语 ~+n. We need a confident leader to overcome these difficulties. 我们需要一个有信心的领导者来克服这些困难。 He noticed her confident smile.

他注意到她充满自信的微笑。 用作表语 S+be+~+prep.-phrase I feel confident about the future of rock-and-roll music in China. 我对摇滚乐在中国的前景充满信心。 I am confident in him. 我对他充满信心。 He is confident in his ability to achieve success. 他坚信自己有能力取得成功。 We are confident in saying that the new record will be broken soon. 我们充满信心地说新的纪录很快会被打破。 S+be+~+that-clause I feel confident that we will win. 我确信我们将胜利。 confident的用法例句

1. He was confident the allies would make good on their pledges. 他相信盟友们会履行他们的承诺。 2. She has now changed into a happy, self-confident woman. 如今她已经变成一个快乐、自信的女人。 3. If there has to be a replay we are confident of victory. 如果重新比赛,我们有信心取得胜利。 4. Management is confident about the way business is progressing. 管理层对业务发展的态势充满信心。 5. Hes very forward and confident and chats happily to other people. 他很自以为是,喜欢和别人攀谈。 6. Police say they are confident of catching the gunman. 警方说他们有信心抓住那个持枪歹徒。 on holiday 还是on holidays

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的字符。

干货site的使用方法总结

语法格式: site : 网址关键词 或者关键词site : 网址 注意事项: 1、site:后边跟的冒号必须是英文的“:”,中文的全角冒号“:”无用 2、url前不能带http:// 3、url后边不能带斜杠“/”,其实是哪里都不能带/ 4、url中不要用www,除非你有特别目的,用www会导致错过网站内的内容,因为很多网站的频道是没有www的,也就是二级域名。 其他说明: 1、关键词既可以在“site:”前,也可以在“site:”后,搜索结果是一样的,但是不管谁前谁后,关键词和“site:”之间必须空一格。 2、对于“site:”搜索,关键词一样可以是多个,多个关键词之间以空格隔开。 3、支持与其他复杂搜索语法混用,各语法和关键词之间空一格 4、除了网站,还可以搜索网站的频道,但仅限于不用“/”的。 5、一个网站可能有多种语言,所以选择“搜索所有网站”和“搜索中文(简体)网页”是有差别的 当然,如果指定的网站只有一种语言,怎么选择就都一样了 用途: 1、可用于限制网站类型,学术资料在edu、org中会更精练,政府相关的在gov中也许更容易找。 2、用了edu、org、net、gov之类的域名后缀,并不会搜索所有含这个后缀的网站。只会搜索以这个后缀结尾的网站,带cn、us、si等各国家和地区域名后缀的edu.jp、https://www.360docs.net/doc/015120933.html,、org.it 等是不搜的,所以你要另外搜 3、搜索某种语言或某个关键词在指定国家的网站。 4、有的网站没有提供站内搜索,或者它的信息结构混乱,内容又多,不好找东西,那么可以用“site:”对这个网站进行检索。 google的“site:”功能比多数网站自己的站内检索还要好用,如果你查的不是动态数据库,而且对时效性要求不高的话。 5、搜索不欢迎你搜索和免费使用的网站、数据库的部分内容。 6、用“site:”搜索死链接网站、已关闭网站内的信息。

Java中string的相关函数

Java中string的相关函数 字串与字元 文字字串是一个相当基本且经常被使用到的资料型态,然而在Java 中字串不象char、int 与float 一样是个基本资料型态,而是使用https://www.360docs.net/doc/015120933.html,ng.String 类别来加以表示,该类别定义了许多有用的方法来操作字串。String 物件是固定不变的(immutable):一旦一个String 物件被建立了,则没有任何方法可以改变它所代表的文字,因此,每个运作字串的方法会传回一个新的String 物件,而所修正过后的字串便是储存在此新物件里。 以下的程式码展示了你可以对字串所执行的运作: // 建立字串 String s = "Now "; // String 物件有个特殊的写法 String t = s + "is the time. "; // 使用+ 运算子来串连字串 String t1 = s + " " + 23.4; // + 将其它值转换为字串 t1 = String.valueOf( 'c '); // 从字元值获得对应的字串 t1 = String.valueOf(42); // 获得整数或其他任何数值的字串版本 t1 = Object.toString(); // 使用toString() 将物件转换为字串 // 字串长度 int len = t.length(); // 字串中的字元数:16 // 字串中的子字串 String sub = t.substring(4); // 传回从char 4 到最后的子字串:"is the time. " sub = t.substring(4, 6); // 传回chars 4 与5:"is " sub = t.substring(0, 3); // 传回chars 0 到2:"Now " sub = t.substring(x, y); // 传回从位置x 到y-1 间的子字串 int numchars = sub.length(); // 子字串的长度永远是(y-x) // 从一个字串中撷取(extract)出字元 char c = t.charAt(2); // 取得t 的第三个字元:w char[] ca = t.toCharArray(); // 将字串转换为一个字元阵列 t.getChars(0, 3, ca, 1); // 将t 中的前三个字元放到ca[1] 到ca[3] 中 // 大小写转换 String caps = t.toUpperCase(); // 转换为大写 String lower = t.toLowerCase(); // 转换为小写 // 字串比较 boolean b1 = t.equals( "hello "); // 传回flase:两字串并不相等 boolean b2 = t.equalsIgnoreCase(caps); // 忽略大小写的字串比较:true boolean b3 = t.startsWith( "Now "); // 传回true boolean b4 = t.endsWith( "time. "); // 传回true int r1 = https://www.360docs.net/doc/015120933.html,pareTo( "Pow "); // 传回值<0:s 在"Pow "之前 int r2 = https://www.360docs.net/doc/015120933.html,pareTo( "Now "); // 传回值0:两字串相等

C 中的string常用函数用法总结.

C++中的string常用函数用法总结首先,为了在我们的程序中使用string类型,我们必须包含头文件。 如下: #include //注意这里不是string.h string.h是C字符串头文件 #include using namespace std; 1.声明一个C++字符串 声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str 初始化为一个空字符串。String类的构造函数和析构函数如下: a) string s; //生成一个空字符串s b) string s(str) //拷贝构造函数生成str的复制品 c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值 d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多st rlen”的部分作为字符串的初值 e) string s(cstr) //将C字符串作为s的初值 f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。 g) string s(num,c) //生成一个字符串,包含num个c字符 h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 i) s.~string() //销毁所有字符,释放内存 都很简单,我就不解释了。

SiteMaster的使用方法

一、测试仪表预调 选择测试天线的频率范围 (1)按ON/OFF按钮打开SiteMaster。 (2)按MODE键。测量模式选择频率-驻波比域,然后按F1 软键。输入天线系统的下限(“Lower”)频率MHz值,按ENTER 键。 (3)再按F2 软键。输入天线系统的上限(“Higher”)频率MHz值,按ENTER键。在显示区域显示新的频率数值范围FREQ scale。检查是否与输入的频率范围一致。 二、测试仪表较准 (1)将测试口扩充电缆(the test port extension cable)连到测试端口。若在扩充电缆端口校准,则测出的天馈线长度以此点为参考点。若在标准测试端口校准,则测出的天馈线长度以点为参考点。 (2)接校准器,按START CAL 键,开始校准。 三、输入天馈线的参数 (1)按MODE 键。选择故障定位-驻波比菜单。 (2)按DTF帮助软键。 (3)按电缆损耗(LOSS)菜单。 输入要测试的天馈线类型的每米的损耗dB值(7/8硬馈线,型号为LDF5-50A,cable loss=0.043dbm/m;1/2的软跳线,型号为LDF4-50A,cable loss=0.077dbm/m) ,然后按ENTER.

注意: 只有采用供货商提供的正确值,才能保证测试结果的可靠性。 (4)再按传播速率PROP V 菜单。输入relative velocity (7/8硬馈线,型号为LDF5-50A,Vf=0.89; 1/2的软跳线,型号为LDF4-50A,Vf=0.88),然后按ENTER键。 注意:也可调出电缆表,直接选中所用的电缆型号。若有几种电缆混用,则选择使用最长的电缆型号。可省略(3)(4)两步。 (5)按ENTER键返回主菜单。

String常见的操作和方法

String常见的操作和方法 String类适用于描述字符串事物 那么它就提供了多个方法对字符串进行操作。 常见的操作有哪些? “afbs” 1、获取 1.1 字符串中包含的字符数,也就是字符串的长度。 int length(): 获取长度。 1.2 根据位置获取位置上某个字符。 char charAt(int index): 1.3 根据字符获取字符在字符串中位置。 int indexOf(int ch): 返回的是ch在字符串中第一次出现的位置。 int indexOf(int ch, int fromIndex): 从fromIndex指定位置开始,获取ch在字符串中出现的位置。 int indexOf(int str): 返回的是str在字符串中第一次出现的位置。 int indexOf(int str, int fromIndex): 从fromIndex指定位置开始,获取str在字符串中出现的位置。 int lastIndexOf(int ch); 2、判断。 2.1 字符串中是否包含某一个子串。 boolean contains(str): 特殊之处:indexOf(str):可以索引str第一次出现的位置,如果返回-1.表示该str不存在字符串中。 所以,也可以用于对指定判断是否包含。 if(str.indexOf("aa")!=-1) 而且该方法既可以判断,又可以获取出现的位置。 2.2 字符串中是否有内容。

boolean ifEmpty(): 原理就是判断长度是否为0. 2.3 字符串是否是以指定内容开头。 boolean startsWith(str); 2.4 字符串是否是以指定内容结尾。 boolean endsWith(str); 2.5判断字符串内容是否相同。复写了Object类中的equals方法。boolean equals(str); 2.6判断内容是否相同,并忽略大小写。 boolean equalsIgnoreCase(); 3、转换 3.1 将字符数组转成字符串。 构造函数:String(char[]) String(char[],offset,count):将字符数组中的一部分转成字符串。 静态方法: static String copyValueOf(char[]); static String copyValueOf(char[] data,int offset,int count) static String valueOf(char[]): 3.2 将字符串转成字符数组。 char[] toCharArray(): 3.3 将字节数组转成字符串。 String(byte[]) String(byte[],offset,count):将字节数组中的一部分转成字符串。 3.4 将字符串转成字节数组。** byte[] getBytes(): 3.5 将基本数据类型转成字符串。 static String valueOf(int) static String valueOf(double) 3+"";//String.valueOf(3); 特殊:字符串和字节数组在转换过程中,是可以指定编码表的。

相关文档
最新文档