JAVA语言程序设计课件 第2章Java基本语法_第1页
JAVA语言程序设计课件 第2章Java基本语法_第2页
JAVA语言程序设计课件 第2章Java基本语法_第3页
JAVA语言程序设计课件 第2章Java基本语法_第4页
JAVA语言程序设计课件 第2章Java基本语法_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章Java基本语法学习目标

掌握变量的声明和初始化方法,理解变量的作用域掌握算术运算符、关系与条件运算符、位运算符、赋值运算符和其他运算符的使用方法,掌握运算符的优先级,掌握类型转换的概念和方法掌握分支控制、循环控制和中断控制等流程控制语句的使用方法和技巧掌握一维、多维数组的声明、初始化和使用方法掌握String类和StringBuffer类的使用方法,理解两者之间的异同语法是程序设计的基础,任何一种程序设计语言,都有一套自己的语法规则。本章将向大家介绍Java语言中所使用到的一些基本的语法和要求,包括变量、运算符、表达式和流程控制语句以及Java中数组和字符串的定义和使用方法。

2.1变量2.1.1任务2.1声明和使用变量2.1.2变量的声明和初始化2.1.3变量的作用域2.1.1任务2.1声明和使用变量一、任务引入在一个程序中,我们将会使用到很多数据,这些数据有的是事先给定的,比如圆周率;有的是事先我们不知道,在程序运行中会不断变化的,比如计算结果。那么,我们怎样使用和操纵这些数据呢?请看下面的例子:二、任务目标掌握声明和初始化变量的方法,了解变量的类型。三、任务内容由给定的半径,计算圆的面积。四、程序清单/*源程序文件名:Ex0201.java*/importjava.io.*;public

classEx0201{

public

static

voidmain(Stringargs[]){

doublepai=3.14;

doublefR,fArea;

try{ BufferedReaderinObj=newBufferedReader(newInputStreamReader(System.in)); System.out.println("请指定圆的半径:"); fR=Double.parseDouble(inObj.readLine()); inObj.close(); fArea=pai*fR*fR; System.out.println("圆的半径是:\t"+fR); System.out.println("圆的面积是:\t"+fArea); }catch(Exceptione){ System.out.println(e); } }}五、运行结果六、任务小结我们来关注这些语句:

doublepai=3.14;doublefR,fArea;

这是对变量的声明和初始化。所谓声明,就是在使用一个变量前,为这个变量取一个名字,并规定它能够存放的数据类型,而初始化则是为变量设定一个初始值。在这里,我们声明了三个变量:pai、fR和fArea,它们都是double类型,即双精度实型量。其中变量pai已经被初始化为3.14,fR和fArea还没有初始化,此时它们没有具体的值。2.1.2变量的声明和初始化要使用一个变量,必须先声明变量的名字、类型等特征,并对其进行初始化后才能使用它。简单变量的声明和初始化格式如下:

type

name=value;一、数据类型二、标识符

标识符用于对变量、类和方法的命名。标识符是除关键字外的任意一串以合法字母、下划线(_)或美元符号($)开头的,由合法字母、数字、下划线(_)和美元符号($)组成的字符串。

abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvirtualvoidvolatilewhile表2-1Java的关键字2.1.3变量的作用域变量经过声明和初始化后就可以使用了,但并不是一个变量声明和初始化后就可以随便在哪里使用,这里涉及一个作用域的问题。变量的作用域就是该变量能被访问的区间,在程序源代码中通常以程序段来划分。2.2运算符和表达式2.2.1任务2.2四则运算一、任务引入在很多程序设计中,程序员都会遇到关于数值计算的问题,这其中就包括我们常见的加减乘除四则运算。在Java中是怎么样进行这些基本计算的呢?请看下面的例子:二、任务目标掌握算术运算符的使用方法。三、任务内容四则运算。四、程序清单/*源程序文件名:Ex0202.java*/importjava.io.*;publicclassEx0202{

public

static

voidmain(Stringargs[]){

inta=5+4; //a=9

intb=a*2; //b=18

intc=b/4; //c=4

intd=b-c; //d=14

inte=-d; //e=-14

intf=e%4; //f=-2

doubleg=18.4;

doubleh=g%4; //h=2.4

inti=3;

intj=i++; //i=4,j=3

intk=++i; //i=5,k=5 System.out.print("a="+a); System.out.println("b="+b); System.out.print("c="+c); System.out.println("d="+d); System.out.print("e="+e); System.out.println("f="+f); System.out.print("g="+g); System.out.println("h="+h); System.out.print("i="+i); System.out.println("j="+j); System.out.println("k="+k); }}五、运行结果六、任务小结这是一个很简单的例子,在这个例子中,我们使用了Java提供的全部八个算术运算符,除了大家熟悉的加(+)减(-)乘(*)除(/)运算之外,还有取余(%)、求反(-)、自增(++)以及自减(--)运算,在下一小节中,我们将详细介绍这八个运算符的使用方法和注意事项。2.2.2算术运算符算术运算符用于完成算术运算。Java提供了两大类共八个算术运算符。运算符运算示例功能+加a+b求a与b相加的和-减a-b求a与b相减的差*乘a*b求a与b相乘的积/除a/b求a除以b的商%取余a%b求a除以b的余数表2-2双目算术运算符运算符运算示例功能++自增a++或++a等价于a=a+1--自减a—-或--a等价于a=a-1-求反-a等价于-1*a表2-3单目算术运算符2.2.3任务2.3比较大小一、任务引入除了基本的算术运算之外,我们还会对遇到的数据进行大小比较,以决定它们的性质或者是程序运行的顺序,下面我们来看一看Java中是如何比较大小的。请看下面的例子:二、任务目标掌握Java中关系运算符的使用方法。三、任务内容将三个数按大小顺序输出。四、程序清单/*源程序文件名:Ex0203.java*/importjava.io.*;public

classEx0203{

public

static

voidmain(Stringargs[]){

inta=5,b=12,c=8;

inttemp=0;

if(a<b){ temp=a;a=b;b=temp; }

if(b<c){ temp=b;b=c;c=temp; }

if(a<b){ temp=a;a=b;b=temp; } System.out.println(a+""+b+""+c); }}五、运行结果六、任务小结

在这个例子中,我们通过三次大小比较,最终将三个数按大小排序输出。每一次比较的运行结果,就将较大的数移到靠前的位置,较小的数移到靠后的位置。第一次比较,将a和b中较大的数赋给了变量a,较小的数赋给了b;第二次比较,将b和c中较大的数赋给了b,较小的数赋给了c,这样三个数中最小的数就是c;最后再比较一次a和b,三个数的大小顺序就排列好了。2.2.4关系与条件运算符运算符运算示例功能==等于a==ba等于b时结果为true!=不等于a!=ba不等于b时结果为true>大于a>ba大于b时结果为true<小于a<ba小于b时结果为true>=大于等于a>=ba大于或等于b时结果为true<=小于等于a<=ba小于或等于b时结果为true表2-4关系运算符运算符运算示例功能&非简洁与x&yx,y都为true时结果为true&&简洁与x&&y|非简洁或x|yx,y中有一个为true结果为true||简洁或x||y^异或x^yx,y相同时结果为false!取反!xx为false时结果为true表2-5条件运算符2.2.5任务2.4使用标记位一、任务引入在很多RPG游戏中,人物角色所掌握的多种技能通常使用一个变量存储,这就是标记位存储方法,而其所使用的运算就是位运算符。下面我们通过一个游戏程序片段来看一看Java中是如何使用位运算符的。请看下面的例子:二、任务目标掌握Java中位运算符的使用方法。三、任务内容设计函数,让人物角色学习各种技能。四、程序清单/*源程序文件名:Ex0204.java*/public

classEx0204{

public

static

voidmain(Stringargs[]){

intsCook=1,sFish=2,sProject=4,sForge=8; //各技能标记

characterch1=newcharacter(); ch1.learnSkill(sCook); //学习烹饪技能

ch1.learnSkill(sForge); //学习锻造技能

if(ch1.haveSkill(sCook)) System.out.println(+"会烹饪。");

else System.out.println(+"不会烹饪。");

if(ch1.haveSkill(sFish)) System.out.println(+"会钓鱼。");

else System.out.println(+"不会钓鱼。"); }}classcharacter{ Stringname="smith"; Stringsex="m";

intskill=0; //技能标记位

voidlearnSkill(intskillCode){ //学习技能

this.skill=this.skill|skillCode; }

booleanhaveSkill(intskillCode){ //判断是否拥有技能

return((this.skill&skillCode)==skillCode); }}五、运行结果六、任务小结位运算是针对二进制数进行操作的,所以我们在分析这个例子的时候,要先将其中的一些整型量转为二进制形式后才能更好地理解。如人物技能标记位skill的初始值为(0000)2,烹饪技能标记为(0001)2,钓鱼技能标记为(0010)2,工程技能标记为(0100)2,锻造技能标记为(1000)2。注意两个函数中的语句:

this.skill=this.skill|skillCode;

return((this.skill&skillCode)==skillCode);

第一条语句使用的是按位或(|),即(0000)2|(0001)2=(0001)2,人物技能标记位的最后一位为1,表示人物学会了烹饪技能。第二条语句使用的是按位与(&),即(0101)2&(0001)2=(0001)2,再将结果与相应技能标记比较,这样来判断人物是否掌握这种技能。除按位运算符外,还有移位运算符,在下一小节中,我们将详细介绍按位和移位运算符的使用方法。2.2.6位运算符运算符运算示例功能&按位与a&b将a和b按二进制进行与运算|按位或a|b将a和b按二进制进行或运算^按位异或a^b将a和b按二进制进行异或运算~按位取反~a将a按二进制进行取反运算表2-6按位运算符运算符运算示例功能<<左移a<<b将a左移b位>>右移a>>b将a右移b位>>>无符号右移a>>>b将a右移b位,左边空位填零表2-7移位运算符2.2.7赋值运算符与类型转换一、赋值运算符赋值运算符用于将运算符右边表达式的值赋给左边的变量,基本使用格式如下:变量=表达式;如:

i=1;k=i+j/4;二、类型转换赋值运算的基本要求是运算符左右两边的数据类型必须一致,如果遇到赋值号两边的数据类型不一致的情况,就需要把右边的数据类型转换成左边的数据类型。通常情况下,如果类型不一致,需要程序员在程序中进行强制类型转换,在某些特殊情况下,Java也可以自动进行类型转换。三、快捷赋值运算符运算符示例等价于+=a+=ba=a+b-=a-=ba=a-b*=a*=ba=a*b/=a/=ba=a/b%=a%=ba=a%b&=a&=ba=a&b|=a|=ba=a|b运算符示例等价于^=a^=ba=a^b<<=a<<=ba=a<<b>>=a>>=ba=a>>b>>>=a>>>=ba=a>>>b表2-8快捷赋值运算符续表2.2.8其他运算符运算符描述?:一种简化的条件判断语句[]定义数组,创建数组,以及访问数组元素.访问对象的成员函数和成员变量(参数1,参数2,...)函数的参数,多个参数之间以逗号分隔(变量类型)强制类型转换new创建新对象或新数组instanceof判断对象是否是类的一个实例2.2.9运算符的优先级优先级类型运算符1后缀运算符[].(参数)a++a--2一元运算符++a--a-a~

!3新建与类型转换new(变量类型)4乘除法*/%5加减法+-6移位<<>>>>>7关系运算符<><=>=instanceof8相等与不等==!=9按位与&10按位异或^11按位或|12逻辑与&&13逻辑或||14条件判断?:15赋值=+=-=*=/=%=&=^=|=<<=>>=>>>=表2-10运算符的优先级2.3流程控制2.3.1任务2.5根据条件输出一、任务引入当编写程序的时候,在没有流程控制语句的情况下,Java程序是按照源代码中每条语句出现的顺序一条一条顺序执行的。而流程控制语句的作用就是让语句不按照顺序执行,包括分支控制语句、循环控制语句和中断控制语句。首先请看下面的例子:二、任务目标掌握Java中分支控制语句的使用方法。三、任务内容编写程序,计算数值变量a的正负号,以测试条件分支语句。四、程序清单/*源程序文件名:Ex0205.java*/public

classEx0205{

public

static

voidmain(Stringargs[]){

inta=-23;

if(a>=0){ System.out.println("a的值大于等于零。"); }

else{ System.out.println("a的值小于零。"); } }}五、运行结果六、任务小结这是一个使用分支控制语句if(){}…else{}的简单程序,在变量a有一个确定值的情况下,使用if()语句判断分支条件,也就是(a>=0)是否成立,如果成立,程序就执行if()语句后面的大括号({})里的语句;如果不成立,程序就执行else后面的大括号里的语句。这样,根据某一个判断条件,我们可以让程序分别执行不同的语句,实现不同的操作。除了if…else这样的分支控制语句外,还有if、if…elseif…else以及switch等也可实现分支控制的语句,在下一个小节中我们来一起学习。2.3.2分支控制语句一、if语句if语句是最基本的分支控制语句,它可以让程序根据某些条件选择性地执行语句。if语句的形式如下:if(关系表达式){

语句}它的含义是:如果关系表达式的值为true,则执行后面大括号里的语句,否则就不执行大括号里的语句。二、if…else语句有时,程序需要控制当条件满足和不满足时分别执行不同的语句,这时可以使用if…else语句,通过判断一个条件,可以决定程序到底执行那些语句。具体应用在任务2.5里面已经很详细了,这里不再赘述。三、if…else嵌套如果我们的程序需要有两个以上的分支,那么单纯的if…else结构就不能满足需要了,这时我们可以使用嵌套的if…else结构。四、switch语句switch语句用于处理多分支选择,它的一般形式是:switch(intVar){

caseVar1:

语句1;

break;

caseVar2:

语句2;

break; ......

caseVarn:

语句n;

break;

default:

语句n+1;}2.3.3任务2.6循环多次输出一、任务引入程序设计中有时需要将一段代码反复执行,这时就需要用到循环控制语句。使用循环控制语句可以提高代码的使用率,减轻程序员负担,增加程序运行效率,让我们用很简洁的语句完成重复的、复杂的操作。请看下面的例子:二、任务目标掌握Java中循环控制语句的使用方法和技巧。三、任务内容编写程序,计算1×9、2×9、…9×9的结果并输出。四、程序清单/*源程序文件名:Ex0206.java*/public

classEx0206{

public

static

voidmain(Stringargs[]){

for(inti=1;i<=9;i++){ System.out.println(i+"x9="+i*9); } }}五、运行结果六、任务小结按照以前的程序设计思路,要进行9次计算和输出,至少需要9条语句,分别计算1×9、2×9…9×9的结果并输出。但是这些语句里面,除了乘数有变化,而且是有规律的变化之外,其他的计算和输出都是一样的。所以我们使用了循环控制语句for,通过循环控制变量i,来控制计算时的乘数以及计算的次数。这样,原本需要使用9条语句完成的程序,在这里被简化为了一个for语句段。for语句是常见的一种循环控制语句,另外,Java还提供了do...while和while两种循环控制语句,下一个小节中我们将详细介绍。2.3.4循环控制语句一、for语句for语句是最常用的一种循环控制语句,它通常用于循环次数已知的情况。for语句的一般格式如下:for(初始化表达式;循环条件表达式;迭代表达式){循环体}二、while语句while语句实现“当”型循环,即先判断循环条件,如果条件满足,则执行循环体,否则就结束循环。while语句的一般格式如下:while(条件表达式){

循环体}三、do...while语句do...while语句的判断过程与while语句正好相反,它是先执行循环体,再进行判断以决定是否进行下一次循环。do...while语句的一般格式如下:do{

循环体}while(条件表达式);2.3.5任务2.7从循环中跳出一、任务引入在一些循环结构中,我们可能遇到某种情况,需要中止循环,但Java没有提供goto语句,不能使用直接跳转语句跳出循环,但是Java针对这种情况,提供了break、continue和return语句,用于不同情况下的中断控制。比如下面的例子:二、任务目标掌握Java中中断控制语句的使用方法。三、任务内容设计函数,求100~200间的所有素数。四、程序清单/*源程序文件名:Ex0207.java*/public

classEx0207{

public

static

voidmain(Stringargs[]){

intn=0; outer:for(inti=101;i<200;i++){

intk=15;

for(intj=2;j<=k;j++){

if(i%j==0)

continueouter; } System.out.print(""+i); n++;

if(n<10)

continue; System.out.println(); n=0; } }}五、运行结果六、任务小结在这个任务里,我们使用嵌套的for语句,其中外层for语句用于控制变量i,也就是用来判断是否是素数的那个数的递增,内层for语句用于控制对i是否是素数的判断。

2.3.6中断控制语句一、break语句在switch语句中,break用来终止switch语句的执行,程序流程转到switch语句块后的第一条语句。同样在循环语句for、while和do…while中,break将立即终止正在执行的循环,程序流程转到循环语句后的第一条语句。二、continue语句continue语句只能用在循环语句中,用于中断本次循环,开始下一次循环。在任务2.7中,第二个continue语句就是中断一次循环,即不执行后面的输出和赋值语句,开始下一次循环。三、return语句return语句从当前函数中返回到调用该函数的语句处,并继续执行后面的语句(有关函数的内容将在第三章中介绍)。2.4数组2.4.1任务2.8存储学生单科成绩一、任务引入在前面的学习中,我们知道了一个变量可以存储一个数据,但是很多程序中的数据量很大,如果每一个数据都用一个变量来存储的话,在变量的命名和使用上会有很大的麻烦。当这些数据类型相同的时候,我们可以使用数组来存储,这样可以简化程序设计的难度。请看下面的例子:二、任务目标掌握Java中一维数组的使用方法。三、任务内容编写程序,统计全班学生单科成绩的合格率。四、程序清单/*源程序文件名:Ex0208.java*/public

classEx0208{

public

static

voidmain(Stringargs[]){

int[]mathRecord={76,56,89,100,60,70,61,59,0,88,94,99};

intTotal=mathRecord.length;

doublepass=0;

for(inti=0;i<Total;i++){

if(mathRecord[i]>=60) pass++; } System.out.println("全班总人数为:"+Total); System.out.println("及格率为:"+pass/Total*100+"%"); }}五、运行结果六、任务小结数组可以用来存储数据类型一致的多个数据,通常和for循环配合,访问数组中的每一个元素。数组元素的标号(数组下标)从0开始,这和其他一些程序设计语言有所不同。数组的长度可以用“数组名.length”来获得,但不能使用这个方法在程序中重新设置数组长度。2.4.2一维数组的使用一、一维数组的声明一维数组的声明方式有两种:数据类型[]数组名;数据类型数组名[];二、一维数组的初始化在使用已经声明好的数组之前,需要对其进行初始化操作,即为数组分配内存空间,并为每个数组元素设置一个默认的初始化值。这里需要使用到运算符new,其格式如下:数组名=new

数据类型[数组长度]三、一维数组的使用我们可以通过下面的格式访问数组中的任意一个元素:数组名[下标]2.4.3任务2.9存储学生多科成绩一、任务引入任务2.8为大家展示了怎样使用一维数组来存储学生的单科成绩,接下来我们很容易想到,如果有多科成绩,是否也可以用一个数组来存储呢?答案是肯定的,那就是使用二维数组。请看下面的例子:二、任务目标掌握Java中多维数组的使用方法。三、任务内容编写程序,使用二维数组统计全班学生多科成绩的合格率。四、程序清单/*源程序文件名:Ex0209.java*/public

classEx0209{

public

static

voidmain(Stringargs[]){

int[][]allRecord={{70,85},{59,65},{59,60},{90,95},{65,50},{50,50}};

double[]pass=new

double[2];

intTotal=allRecord.length;

for(inti=0;i<Total;i++){

for(intj=0;j<2;j++){

if(allRecord[i][j]>=60) pass[j]++; } } System.out.println("全班总人数为:"+Total); System.out.println("语文及格率为:"+pass[0]/Total*100+"%"); System.out.println("数学及格率为:"+pass[1]/Total*100+"%"); }}五、运行结果六、任务小结与一维数组类似,多维数组通常也和for循环配合使用,以访问多维数组中的每一个元素,只是根据数组维数的多少,而使用多重循环来达到目的。多维数组的定义和使用与一维数组基本一致,只是由于多维数组的复杂性,在使用过程中要多加注意。2.4.4多维数组的使用一、二维数组的声明二维数组的声明方式为:数据类型数组名[][];二、二维数组的初始化对二维数组来说,分配内存空间有两种方法。一种是直接分配,即一次性指定两个维数上的长度,如:inta[][]=new

int[2][3];这样分配后的数组相当于一个矩阵,其每一行的长度是一样的。三、二维数组的使用同一维数组类似,我们可以通过给出二维数组的两个下标来访问数组中的元素。2.5字符串2.5.1任务2.10使用字符串对象一、任务引入在许多语言中,字符串是一种基本数据类型,但在Java语言中,字符串是一种对象,我们可以通过使用String或StringBuffer两个类来对其进行处理。请看下面的例子:二、任务目标掌握Java中String类的使用方法。三、任务内容编写程序,对String对象进行连接、替换、比较和查找等操作。四、程序清单/*源程序文件名:Ex0210.java*/public

classEx0210{

public

static

voidmain(Stringargs[]){ Strings1="Hello,world!"; Strings2=newString("Hello,world!"); s2=""+s2+""; Strings3=s1.replace('w','W');

if(s3.equals(s1)) System.out.println("s3等于s1。");

else System.out.println("s3不等于s1。");

if(s3.equalsIgnoreCase(s1)) System.out.println("s3等于s1(忽略大小写)。");

else System.out.println("s3不等于s1(忽略大小写)。"); System.out.println("s2去除首尾空格后:"+s2.trim()); System.out.println("s1中第一个o字母出现在第"+s1.indexOf('o')+"位置。"); System.out.println("s1中第一个e字母和最后一个l字母之间的字符串是:"+s1.substring(s1.indexOf('e'),s1.lastIndexOf('l'))); }}五、运行结果六、任务小结在这个任务中我们可以看到,由于Java将字符串视为对象,所以可以使用一些很便捷的方法对其进行较为复杂的操作,观察下面这些语句:s2=""+s2+"" //将三个字符串连接起来s3=s1.replace('w','W') //将s1中的w替换成Ws3.equals(s1) //比较s1和s3s3.equalsIgnoreCase(s1) //比较s1和s3,忽略大小写s2.trim() //去掉s2首尾的空格s1.indexOf('o') //查找s1中第一次出现字母o的位置s1.substring(s1.indexOf('e'),s1.lastIndexOf('l')) //取出s1中从第一个e字母开始,到最后一个l字母结束的子串简单的几条语句,完成了字符串的连接、替换、比较、去首尾空格、查找、取子串等在其他语言中可能需要使用到循环、数组、判断等复杂语句才能完成的功能。这也从一个方面体现了面向对象程序设计的优越性。2.5.2String类一、String类对象的创建使用String类的构造函数是创建String对象的一种重要方法。表2-11列出了常用的String类的构造函数及其简要说明:构造函数说明String()初始化一个新的String对象,使其包含一个空字符串String(char[]value)初始化一个新的String对象,使其包含字符数组参数里的字符序列构造函数说明String(char[]value,intoffset,intcount)初始化一个新的String对象,使其包含字符数组参数中子数组的字符序列String(Stringvalue)初始化一个新的String对象,使其包含与字符串参数相同的字符序列String(StringBufferbuffer)初始化一个新的String对象,使其包含与字符串缓冲区参数相同的字符序列表2-11String类的常用构造函数二、String类对象的基本操作函数说明charcharAt(intindex)获取给定的index处的字符intcompareTo(Stringstr)按照字典方式比较两个字符串intcompareToIgnore(Stringstr)按照字典方式比较两个字符串,忽略大小写Stringconcat(Stringstr)将给定的字符串连接到该字符串末尾staticStringcopyValueOf(char[]data)创建一个和给定字符数组相同的String对象staticStringcopyValueOf(char[]data,intoffset,intcount)使用偏移量,创建一个和给定字符数组相同的String对象booleanequals(Objectobj)将String对象和另一个String对象进行比较booleanequalsIgnoreCase(Stringstr)将String对象和另一个String对象进行比较,忽略大小写voidgetChars(intstrbegin,intstrend,char[]data,intoffset)将字符串中的字符复制到字符数组intindexOf(intchar)返回该字符串中第一次出现给定字符的索引位置intindexOf(intchar,intfromindex)返回从给定索引处开始,该字符串中第一次出现给定字符的索引位置intindexOf(Stringstr)返回该字符串中第一次出现给定字符串的索引位置intindexOf(Stringstr,intfromindex)返回从给定索引处开始,该字符串中第一次出现给定字符串的索引位置函数说明intlength()返回字符串长度booleanregionMatches(booleanignoreCase,inttoffset,Stringstr,intooffset,intlen)检查两个字符串区域是否相等,允许选择是否忽略大小写Stringreplace(charoldChar,charnewChar)通过将字符串中的oldChar字符替换为newChar字符来构造一个新字符串booleanstarsWith(Stringprefix)检查字符串是否以给定前缀开头booleanstarsWith(Stringprefix,intoffset)从给定索引处开始,检查字符串是否以给定前缀开头Stringsubstring(intstrbegin)将字符串中从给定索引处开始到末尾的子串构造一个新字符串Stringsubstring(intstrbegin,intstrend)将字符串中从给定索引处开始到给定索引处结尾的子串构造一个新字符串char[]toCharArray()将字符串转换为字符数组StringtoLowerCase()返回将字符串中所有字符转变为小写的新字符串StringtoString()返回字符串对象StringtoUpperCase()返回将字符串中所有字符转变为大写的新字符串Stringtrim()返回字符串去掉首尾空格后的新字符串staticStringvalueOf(inti)将参数转化为字符串。该函数有多次重载,用于将基本数据类型转换为字符串,如staticStringvalueOf(doubled)、staticStringvalueOf(longl)等2.5.3任务2.11使用缓冲区字符串对象一、任务引入String对象是一个常量,创建之后不能更改它的内容。而StringBuffer对象则相反,由于使用了缓冲区技术,我们可以很方便地修改StringBuffer对象的具体内容,这是它和String对象本质上的区别。请看下面的例子:二、任务目标掌握Java中StringBuffer类的使用方法。三、任务内容编写程序,对StringBuffer对象进行追加、插入和修改缓冲区长度等操作。四、程序清单/*源程序文件名:Ex0211.java*/public

classEx0211{

public

static

voidmain(Stringargs[]){

booleanb=true;

inti=321;

longl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论