自考Java语言程序设计(一)串讲笔记(4)

2019-02-15 12:36

以下代码用字符串对象创建新字符串:

StringnewStr=newString(s);

上述代码使字符串newStr与字符串s的内容相同,但是,它们是两个字符串。 (3)String(chara[],根据字符数组a创建一个字符串。

(4)String(chara[],intstartIndex,intcharNum),根据字符数组的起始下标位置以及字符个数创建字 符串。

例如,以下代码输出3456。 chara[]={?1?,?2?,?3?,?4?,?5?,?6?,?7?}; Stringa=newString(a,2,4); System.out.println(s); 4.2.3 字符串基本操作

Java语言为便于程序使用字符串,为字符串提供非常丰富的操作。 (1)字符串连接

字符串有一个连接运算符+,得到连接两个字符串的结果;一个连接方法concat(Strings),实现复制参数s字符串的内容,连接在字符串对象之后,得到一个新的字符串。

(2)获取字符串的长度

length()方法可以获取一个字符串的长度。字符串常量也可以使用length()方法获得长度。

(3)字符串前缀或后缀的比较

用booleanstartsWith(Strings)方法判断一个字符串的前缀是否为字符串s。

用booleanendsWith(Strings)方法判断一个字符串的后缀是否为字符串s。

(4)比较两个字符串是否相同

用booleanequals(Strings)方法比较某字符串是否与字符串s相同。 注意两字符串比较与两个字符串引用对象比较的

区别。比如,表达式strl.equals(str2)与表达式strl== str2的差异。前者表示所引用的两个字符串的内容是 否相同,后者表示str1与str2是否引用同一个对象。

用booleanequalsIgnoreCase(Strings)方法,忽略大小写比较某字符串是否与字符串s相同。

用intcompareTo(Stringanother)方法按字典顺序与参数another字符串比较大小。

用intcompareToIgnoreCase(Strings)方法,忽略大小写,按字典顺序与参数s字符串比较大小。 (5)字符串检索

用String类中的方法

intindexOf(Strings)或

intindexOf(Strings,intstartpoint)

实现字符串检索。前一个方法是从指定字符串的头开始检索参数字符串s,返回字符串s首次出现的位置。后一个方法则在指定字符串中从某个位置开始检索参数字符串s,返回字符串s首次出现的位置。如果没有检索到,则返回-1。 (6)取字符串的子串

使用string类中的方法:

Stringsubstring(intstartpoint),

Stringsubstring(intstartpoint,intend); 其中startpoint是字符串的开始下标,end是截止下标。子串是从开始下标开始,至截止下标的前一个下标为止范围内的子串。 (7)替换字符串中的某字符得到一个新字符串 使用String类中的方法

Stringreplace(charoldChar,charnewChar)

用参数newChar指定的字符替换s中由oldChar指定的所有字符,产生一个新的字符串。

(8)去掉前后空格得到一个新字符串方法trim()可以去掉字符串的前后空格。 (9)基本类型值的字符串表示

例如,设有double类型变量d,boolean类型变量b, 代码:

StringdStr=String.valueOf(d); StringbStr=String.valueOf(b); 分别将数值和逻辑值转换成字符串。 (10)字符串得到基本类型对象

字符串能转换成基本类对象。例如,代码:

DoubledObj=Double.valueOf(?1234.567?)。 将字符串转换成Double类的对象。类似地,可以将字符串转换到其他基本类对象。 (11)字符串得到基本类型值 1)字符串转化为整型值

字符串转化为int类型值用Integer.parseInt(String s)方法。

2)字符串转化为实型值

字符串转化为float类型值用 Float.parseFloat (Strings)方法。

字符串转化为double类型用代码Double.parseDo? uble(Strings)方法。

4.2.4 StringTokenizer类

java.util包中的类StringTokenizer用于语言符号 (单词)的分析。要分析出字符串中的单词,可用String? Tokenizer类的构造方法,由给定的字符串构造一个

StringTokenizer对象,StringTokenizer对象称作字符串 分析器。然后利用取一个单词方法nextToken(),结合循环,从字符串分析器中逐一取出单词。用hasMoreTokens()方法控制循环,只要字符串中还有语言符号,该方法就返回true,否则返回false。调用countTokens()方法能得到字符串分析器中一共有多少个单词。

StringTokenizer类有两个常用构造方法:

StringTokenizer(Strings),为字符串s构造一个分

析器。使用默认的分隔符集合,即空格符(若干个空格被看作一个空格)、换行符、回车符、Teb符、进纸符。StringTokenizer(Strings,Stringdelim),为字符串s构造一个分析器,以字符串参数delim中的字符作为分隔符。 4.2.5 字符串与字节数组

在许多应用中,字符流信息存于字节数中,为了进行字符串处理,可利用字节数组创建字符中对象。以下是两个常用的用字节数组构造字符串的构造方法:

(1)String(byte[]b),使用默认字节字符对应表,由字节数组构造一个字符串对象。

(2)Strin(byte[]b,intoffset,intlength),使用默认字节字符对应表,由字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。String类也提供实例方法getBytes(): byte[]getBytes(),使用默认字节字符对应表将字符串转化为字节数组。 4.2.6 对象的字符串表示

Object类有方法StringtoSting(),一个对象通过调用该方法可以获得该对象的字符串表示。以java.util包中Date类为例,Date对象用于存储时间,时间的字符串表示的默认顺序是: 星期、月、日、小时、分、秒、年。

另外,System类提供的静态方法longcurrentTime? Millis()能获取系统当前时间 ,这个时间是从1970年1 月1日0点到目前时刻所经历的毫秒数。 5.1 图形界面设计基础

现代程序要求使用图形用户界面(GraphicalUser

Interface,GUI),界面中有菜单、按钮等,用户通过鼠标选择菜单中的选项和点击按钮,命令程序执行功能模块。本章学习如何用Java语言编写CUI程序,如何通 过GUI实现输入和输出。

5.1.1 AWT和Swing

先前用Java编写GUI程序,是使用抽象窗口工具包AWT(AbstractWindowToolkit)。现在多用Swing。Swing可以看作是SWT的改良版,而不是代替 AWT,是对 AWT的提高和扩展。所以,在写 GUI程序时,Swing和AWT都要使用。它们共存于Java基础类(JavaFoundationClass,JFC)中。尽管AWT和Swing都提供了构造图形界面元素的类,但它们的重要方面有所不同:AWT依赖于主平台绘制用户界面组件;而Swing有自己的机制,在主平台提供的窗口中绘制和管理界面组件。Swing与AWT之间的最明显的区别是界面组件的外观,AWT在不同平台上运行相同的程序,界面的外观和风格可能会有一些差异。然而,一个基于Swing的应用程序可能在任何平台上都会有相同的外观和风格。Swing中的类是从 AWT继承的,有些Swing类直接扩展 AWT 中对应的类。例如,JApplet、JDialong、JFrame和JWindow。使用Swing设计图形界面,主要引入两个包:

Javax.swing包含Swing的基本类;java.awt.event 包含与处理事件相关的接口和类。 5.1.2 组件和容器

组件(Component)是图形界面的基本元素,用户可以直接操作,例如按钮。容器(Container)是图形界面的复合元素,容器可以包含组件,例如面板。Java语言为每种组件都预定义类,程序通过它们或它们的子类创建各种组件对象。Java语言也为每种容器预定义类,程序通过它们或它们的子类创建各种容器对象。为了统一管理组件和容器,为所有组件类定义超类Component类,把组件的共有操作都定义在Component类中。同样,为所有容器类定义超类Container类,把容器的共有操作都定义在Container类。例如,Container类中定义了add()方法,大多数容器都可以用add()方法向容器添加组件。

Component、Container和Graphics类是AWT库中

的关键类,为能层次地构造复杂的图形界面,容器被当作特殊的组件,可以把容器放入另一个容器中。例如,把若干按钮和文本框分放在两个面板中,再把这两个面

板和另一些按钮放入窗口中。这种层次地构造界面的方法,能以增量的方式构造复杂的用户界面。

5.1.3 事件驱动程序设计基础 1.事件、监视器和监视器注册

图形界面上的事件是指在某个组件上发生用户操作。对事件作监视的对象称为监视器,监视器提供响应事件的处理方法。为了让监视器与事件对象关联起来,需要对事件对象作监视器注册,告诉系统事件对象的监视器。 2.实现事件处理的途径

Java语言编写事件处理程序主要有两种方案:一个是程序重设方法handleEvent(Eventevt),采用这个方案的程序工作量稍大一些。另一个方案是程序实现一些 系统设定的接口。

java.awt.event包中用来检测并对事件做出反应的 模型包括以下三个组成元素:

(1)源对象:事件“发生”在这个组件上,它与一组 “侦听”该事件的对象保持着联系。

(2)监视器对象:是一个实现预定义的接口的类的一个对象,该对象的类要提供对发生的事件作处理的方法。

(3)事件对象:它包含描述当事件发生时从源传递给监视器的特定事件的信息。 3.事件类型和监视器接口

在Java语言中,为了便于系统管理事件,也为了便于程序作监视器注册,系统将事件分类,称为事件类型。系统为每个事件类型提供一个接口。要作为监视器对象的类必须实现相应的接口,提供接口规定的响应事件的方法。每个事件类型都有一个相应的监视器接口,实现监 视器接口的类必须实现所有定义在接口中的方法。 5.2 框架窗口

窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中。在GUI中,窗口是用户屏幕的一部分。起着在屏幕中一个小屏幕的作用。 有以下三种窗口:

(1)Applet窗口,Applet类管理这个窗口,当小应用程序启动时,由系统创建和处理。

(2)框架窗口(JFrame),这是通常意义上的窗口,它支持窗口,它支持窗口周边的框架、标题栏,以及最小化、最大化和关闭按钮。

(3)一种无边框窗口(JWindow),没有标题栏,没有框架,只是一个空的矩形。 用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口。JFrame类的主要构造方法:

(1)JFrame(),创建无标题的窗口对象。

(2)JFrame(Strings),创建一个标题名是字符串s的窗口对象。 JFrama类的其他常用方法:

(1)setBounds(intx,inty,intwidth,intheight)

(2)setSize(intwidth,intheight) (3)setBackground(Colorc) (4)setVisible(booleanb) (5)pack()

(6)setTitle(Stringname) (7)getTitle()

(8)setResizable(booleanm)

Swing里的容器都可以添加组件,除了JPanel及其子类(如JAppelet)之外,其他的Swing容器不允许把组件直接加入。用Swing编写GUI程序时,通常不

直接用JFrame创建窗口对象,而用JFrame派生的子类创建窗口对象,在子类中可以加入窗口的特定要求和特别的内容等。

显示颜色由java.awt包的Color类管理,在Color类中预定义了一些常用的颜色。

5.3 标签、按钮和按钮事件

标签和按钮也许是图形界面中最常见的两种组件,按钮又总是与激发动作事件有关。 5.3.1 标签

标签(JLabel)是最简单的Swing组件。标签对象的作用是对位于其后的界面组件作说明。可以设置标签的属性,即其前景颜色、背景颜色、字体等等,但不能动态地编辑标签中的文本。程序关于标签的基本内容有以下几个方面: (1)声明一个标签名。 (2)创建一个标签对象。

(3)将标签对象加入到某个容器 JLabel类的主要构造方法是: (1)JLabel()

(2)JLabel(Strings)

(3)JLabel(Strings,intalign)

对齐方法有三种,以下三个常量分别表示显示文字左对齐、中心对齐和右对齐。

JLabel.LEFT、JLabel.CENTER、JLabel.RIGHT 5.3.2 按钮

按钮(JButton)在界面设计中用激发动作事件。按钮可显示文本,当按钮被激活时(鼠标点击),能激发动作事件。 JButton类的常用构造方法有: (1)JButton()

(2)JButton(Strings) JButton类的其他常用方法有:

(1)setLabel(Strings) (2)getLabel()

(3)setMnemonic(charmnemonic) (4)setToolTipText(Strings) (5)setEnabled(booleanb)

(6)setRolloverEnabled(booleanb)

(7)addActionListener(ActionListeneraL)

(8)removeActionListener(ActionListeneraL) 在处理事件的方法中,用获得事件源信息的方法获得事件源信息,并判断和完成相应处理。获得事件源的方法有:方法getSource()获得事件源对象;方法getAc?

tionCommand()获得事件源按钮的文字信息。用鼠标点击按钮产生事件对象,将事件送达监视对象,这个过程称为激发事件。当一个事件被送到监视器对象时,监视器对象实观的接口方法被调用,调用时系统会提供事件对象的参数。程序中虽然没有调用监视器方法的代码,但是程序做了两件事:第一,指定哪一个对象是监视器,它将响应由按钮激发的事件,这个步骤称为监视器注册。第二,必须定义一个方法,当事件送到监视器时,这个方法将被调用。程序中没有调用这个方法的代码,这个调用是系统执行的。 5.4 面板

面板有两种,一种是普通面板JPanel,另一种是滚动面板JScrollPane。 5.4.1 JPanel


自考Java语言程序设计(一)串讲笔记(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Unit 1 Friendship 1教案2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: