教案Java语言程序设计教案56学时第8章Word格式文档下载.docx

上传人:b****2 文档编号:3104437 上传时间:2023-05-01 格式:DOCX 页数:44 大小:37.30KB
下载 相关 举报
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第1页
第1页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第2页
第2页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第3页
第3页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第4页
第4页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第5页
第5页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第6页
第6页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第7页
第7页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第8页
第8页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第9页
第9页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第10页
第10页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第11页
第11页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第12页
第12页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第13页
第13页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第14页
第14页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第15页
第15页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第16页
第16页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第17页
第17页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第18页
第18页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第19页
第19页 / 共44页
教案Java语言程序设计教案56学时第8章Word格式文档下载.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

教案Java语言程序设计教案56学时第8章Word格式文档下载.docx

《教案Java语言程序设计教案56学时第8章Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《教案Java语言程序设计教案56学时第8章Word格式文档下载.docx(44页珍藏版)》请在冰点文库上搜索。

教案Java语言程序设计教案56学时第8章Word格式文档下载.docx

教学目的、要求(分了解、理解、掌握三个层次):

掌握String类、StringTokenizer类、Scanner类的常用方法。

教学内容(包括基本内容、重点、难点):

基本内容:

◆String类

◆StringTokenizer类

◆Scanner类

重点:

掌握String类,StringTokenizer类、Scannner类的使用。

难点:

StringTokenizer类、Scannner。

讨论、思考题、作业:

习题82

(1),(3),(4)3

(1)-(5)

预习第8章8.4-8.12节

参考书目(含参考书、文献等)具体内容:

参考书对应章节

课堂教学实施计划

第13课

教学过程设计:

复习分钟;

授新课95分钟

讨论5分钟;

其它分钟

授课类型(请打√):

理论课√讨论课□实验课□习题课□其它□

教学方式(请打√):

讲授√讨论□示教□指导□其它□

教学手段(请打√):

多媒体模型□实物□挂图□音像□其它√

主要内容

第8章常用实用类

§

8.1String类

Java专门提供了用来处理字符序列的String类。

String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使用String类。

需要注意的是Java把String类声明为final类,因此用户不能扩展String类,即String类不可以有子类。

8.1.1构造String对象

String对象,习惯地被翻译为字符串对象。

1.常量对象

2.String对象

3.引用String常量

8.1.2字符串的并置

String对象可以用"

+"

进行并置运算,即首位相接得到一个新的String对象。

例子1

Example8_1.java

publicclassExample8_1{

publicstaticvoidmain(Stringargs[]){

Stringhello="

你好"

;

StringtestOne="

你"

好"

//【代码1】

System.out.println(hello==testOne);

//输出结果是true

System.out.println("

==testOne);

==hello);

Stringyou="

Stringhi="

StringtestTwo=you+hi;

//【代码2】

System.out.println(hello==testTwo);

//输出结果是false

StringtestThree=you+hi;

System.out.println(testTwo==testThree);

}

}

8.1.3String类的常用方法

1.publicintlength()

2.publicbooleanequals(Strings)

下面的例子2说明了equals的用法。

例子2

Example8_2.java

publicclassExample8_2{

Strings1,s2;

s1=newString("

天道酬勤"

);

s2=newString("

System.out.println(s1.equals(s2));

//输出结果是:

true

System.out.println(s1==s2);

false

Strings3,s4;

s3="

wearestudents"

s4=newString("

System.out.println(s3.equals(s4));

System.out.println(s3==s4);

false

Strings5,s6;

s5="

勇者无敌"

s6="

System.out.println(s5.equals(s6));

System.out.println(s5==s6);

3.publicbooleanstartsWith(Strings)、publicbooleanendsWith(Strings)方法

4.publicintcompareTo(Strings)方法

按字典序比较两个String对象还可以使用publicintcompareToIgnoreCase(Strings)方法,该方法忽略大小写。

下面的例子3中使用java.util包中的Arrays调用sort方法和自己编写SortString类中的sort方法将一个String数组按字典序排列。

例子3

SortString.java

publicclassSortString{

publicstaticvoidsort(Stringa[]){

intcount=0;

for(inti=0;

i<

a.length-1;

i++){

for(intj=i+1;

j<

a.length;

j++){

if(a[j].compareTo(a[i])<

0){

Stringtemp=a[i];

a[i]=a[j];

a[j]=temp;

}

Example8_3.java

importjava.util.*;

publicclassExample8_3{

String[]a={"

melon"

"

apple"

pear"

banana"

};

String[]b={"

西瓜"

苹果"

梨"

香蕉"

使用SortString类的方法按字典序排列数组a:

"

SortString.sort(a);

System.out.print("

"

+a[i]);

使用类库中的Arrays类,按字典序排列数组b:

Arrays.sort(b);

b.length;

+b[i]);

5.publicbooleancontains(Strings)

6.publicintindexOf(Strings)和publicintlastIndexOf(Strings)

7.publicStringsubstring(intstartpoint)

8.publicStringtrim()

8.1.4字符串与基本数据的相互转化

java.lang包中的Integer类调用其类方法publicstaticintparseInt(Strings)可以将由“数字”字符组成的字符序列,如"

876"

,转化为int型数据,例如:

intx;

Strings="

x=Integer.parseInt(s);

例子4求若干个数之和,若干个数从键盘输入。

例子4

Example8_4.java

publicclassExample8_4{

doublesum=0,item=0;

booleancomputable=true;

for(Strings:

args){

try{item=Double.parseDouble(s);

sum=sum+item;

catch(NumberFormatExceptione){

您输入了非数字字符:

+e);

computable=false;

if(computable)

sum="

+sum);

8.1.5对象的字符串表示

下面例子5中的TV类重写了toString()方法,并使用super调用隐藏的toString()方法。

例子5

TV.java

publicclassTV{

doubleprice;

publicvoidsetPrice(doublem){

price=m;

publicStringtoString(){

StringoldStr=super.toString();

returnoldStr+"

\n这是电视机,价格是:

+price;

Example8_5.java

publicclassExample8_5{

Datedate=newDate();

System.out.println(date.toString());

TVtv=newTV();

tv.setPrice(5897.98);

System.out.println(tv.toString());

8.1.6字符串与字符、字节数组

1.字符串与字符数组

例子6具体地说明了getChars()和toCharArray()方法的使用。

例子6

Example8_6.java

publicclassExample8_6{

char[]a,c;

Strings="

1945年8月15日是抗战胜利日"

a=newchar[4];

s.getChars(11,15,a,0);

//数组a的单元依次放的字符是'

抗'

,'

战'

,胜'

利'

System.out.println(a);

c="

十一长假期间,学校都放假了"

.toCharArray();

c.length;

i++)

System.out.print(c[i]);

2.字符串与字节数组

在下面的例子7中,假设机器的默认编码是GB2312。

String常量:

Java你好"

,调用getBytes()返回一个字节数组d,其长度为8,该字节数组的d[0]、d[1]、d[2]和d[3]单元分别是字符J、a、v和a的编码,第d[4]和d[5]单元存放的是字符'

你'

的编码(GB2312编码中,一个汉字占2个字节),第d[6]和d[7]单元存放的是字符'

好'

的编码。

例子7

Example8_7.java

publicclassExample8_7{

byted[]="

.getBytes();

数组d的长度是:

+d.length);

Strings=newString(d,6,2);

//输出:

System.out.println(s);

s=newString(d,0,6);

Java你

3.字符串的加密算法

例子8

EncryptAndDecrypt.java

publicclassEncryptAndDecrypt{

Stringencrypt(StringsourceString,Stringpassword){//加密算法

char[]p=password.toCharArray();

intn=p.length;

char[]c=sourceString.toCharArray();

intm=c.length;

for(intk=0;

k<

m;

k++){

intmima=c[k]+p[k%n];

//加密

c[k]=(char)mima;

returnnewString(c);

//返回密文

Stringdecrypt(StringsourceString,Stringpassword){//解密算法

intmima=c[k]-p[k%n];

//解密

//返回明文

Example8_8.java

importjava.util.Scanner;

publicclassExample8_8{

StringsourceString="

今晚十点进攻"

EncryptAndDecryptperson=newEncryptAndDecrypt();

输入密码加密:

+sourceString);

Scannerscanner=newScanner(System.in);

Stringpassword=scanner.nextLine();

Stringsecret=person.encrypt(sourceString,password);

密文:

+secret);

输入解密密码"

password=scanner.nextLine();

Stringsource=person.decrypt(secret,password);

明文:

+source);

8.1.7正则表达式及字符串的替换与分解

1.正则表达式

正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义字符,这些特殊字符称做正则表达式中的元字符。

表8.1列出了常用的元字符及其意义。

注:

有关正则表达式的细节可查阅java.util.regex包中的Pattern类。

例子9程序判断用户从键盘输入的字符序列是由英文字母,数字或下划线所组成。

例子9

Example8_9.java

publicclassExample8_9{

publicstaticvoidmain(Stringargs[]){

Stringregex="

[a-zA-Z|0-9|_]+"

Stringstr=scanner.nextLine();

if(str.matches(regex)){

System.out.println(str+"

是英文字母,数字或下划线构成"

else{

中有非法字符"

2.字符串的替换

String对象调用publicStringreplaceAll(Stringregex,Stringreplacement)方法返回一个新的String对象,这个新的String对象的字符序列是把当前String对象的字符序列中所有和参数regex匹配的子字符序列,用参数replacement的字符序列替换后得到字符序列。

在下面的例子10中使用了replaceAll()方法。

例子10

Example8_10.java

publicclassExample8_10{

Stringstr="

欢迎大家访问了解、参观公司"

(http:

//|www)\56?

\\w+\56{1}\\w+\56{1}\\p{Alpha}+"

System.out.printf("

替换\n\"

%s\"

\n中的网站链接信息后得到的字符串:

\n"

str);

str=str.replaceAll(regex,"

******"

System.out.println(str);

Stringmoney="

89,235,678¥"

System.out.print(money+"

转化成数字:

Strings=money.replaceAll("

[,\\p{Sc}]"

);

//"

\\p{Sc}"

可匹配任何

货币符号

longnumber=Long.parseLong(s);

System.out.println(number);

3.字符序列的分解

String类提供了一个实用的方法publicString[]split(Stringregex),String对象调用该方法时,使用参数指定的正则表达式regex作为分隔标记分解出当前String对象的字符序列中的单词,并将分解出的单词存放在String数组中。

下面的例子11中,用户从键盘输入一行文本,程序输出其中的单词。

用户从键盘输入whoareyou(Caven?

)观察运行效果。

例子11

Example8_11.java

publicclassExample8_11{

一行文本:

Scannerreader=newScanner(System.in);

Stringstr=reader.nextLine();

//regex匹配由空格、数字和!

#$%&

'

()*+,-./:

<

=>

?

@[\]^_`{|}~组成的字符序列

[\\s\\d\\p{Punct}]+"

Stringwords[]=str.split(regex);

words.length;

i++){

intm=i+1;

单词"

+m+"

:

+words[i]);

8.2StringTokenizer类

当分析一个String对象的字符序列并将字符序列分解成可被独立使用的单词时,可以使用java.util包中的StringTokenizer类,该类有两个常用的构造方法。

∙StringTokenizer(Strings):

∙StringTokenizer(Strings,Stringdelim):

例子12计算购物小票的中的商品价格的和。

程序关心是购物小票中的数字,因此需要分解出这些数字,以便单独处理,这样就需要把非数字的字符序列替换成统一的字符,以便使用分隔标记分解出数字,例如,对于"

12#25#39.87"

,如果用字符#做分隔标记,就很容易分解出数字单词。

在例子12的PriceToken类中,把购物小票中非数字的字符序列都替换成#,然后再分解出数字单词(价格),并计算出这些数字的和。

例子12

Example8_12.java

publicclassExample8_12{

StringshoppingReceipt="

牛奶:

8.5圆,香蕉3.6圆,酱油:

2.8圆"

PriceTokenlookPriceMess=newPriceToken();

System.out.println(shoppingReceipt);

doublesum=lookPriceMess.getPriceSum(shoppingReceipt);

购物总价格%-7.2f"

sum);

intamount=lookPriceMess.getGoodsAmount(shoppingReceipt);

doubleaver=lookPriceMess.getAverPrice(shoppingReceipt);

System

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2