Java第十章:字符串

String类

    单个字符串可以用来char类型保存,多个字符组成的文本就需要保存在String对象中。String通常被称为字符串,一个String对象最多可以保存(2^{32}-1)个字节(占用4GB空间大小)的文本内容。

声明字符串

      在Java语言中,字符串必须包含在一对双引号("  ")之内。例如:

"23.23"、"ABCDE"、"您好"

可以通过以下语法格式来声明字符串变量:

String str;

String:指定该变量为字符串类型

str:任意有效的标识符,表示字符串变量的名称

创建字符串

      在Java3语言中,将字符串作为对象来处理,因此可以像创建其他类型对象一样来创建字符串对象。创建对象要使用类的构造方法。String类的常用构造方法如下:

1、String(char a[])

该方法用一个字符数组a创建对象。

2、String(char a[],int offset,int length)

该方法提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串的长度。

3、Strring(char[] value)

该构造方法可分配一个新的String对象,使其表示字符数组参数中所有元素连接的结果。

连接字符串

连接多个字符串

    使用”+“运算符可实现连接多个字符串的功能。”+“运算符可以连接多个String对象并产生一个新的String对象。

先连接一副对联的上、下联,再分行输出在控制台上。代码如下:

public class Test1{//创建类
	public static void main(String args[]) {//主方法
		String s1=new String("春色绿千里");//声明String对象s1
		String s2=new String("马蹄香万家");//声明String对象s2
		String s=s1+"\n"+s2;//将对象s1、"\n"和对象s2连接并将结果赋值给s
		System.out.println(s);//将s输出
	}
}

运算结果:

连接其他数据类型 

      字符串也可以同其他基本类型进行连接。如果将字符串同其他数据类型数据进行连接,会将其他数据类型的数据直接转换成字符串。

统计每天的阅读和上级时间。代码如下:

public class Test1{
	public static void main(String args[]) {
		int booktime=4;
		float practice=2.5f;
		//将字符串与整型、浮点型变量相连接,并将结果输出
		System.out.println("我每天花费"+booktime+"小时看书;"+practice+"小时上机练习");
	}
}

运行结果:

获取字符串信息 

获取字符串长度

使用String类的length()方法可获取声明的字符串对象的长度。语法如下:

str.length();

字符串查找

       String类提供了两种查找字符串的方法,即indexOf()与lastIndexOf()方法。这两种方法都允许在字符串中搜索指定条件的字符或字符串。indexOf()方法返回的是搜索的字符或字符串首次出现的位置。

1、indexOf(String s)

      该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用String类的indexOf()方法时,会从当前字符串的开始位置搜索s的位置。

//查找字符串里第一次出现该元素的位置str.indexOf("1")

int indexof=str.indexOf("1");

System.out.println(indexof);

2、lastIndexOf(String str)

      该方法用于返回指定字符串最后一次出现的索引位置。当调用String类的lastIndexOf()方法时,或从当前字符串的开始位置检索参数字符串str,并将最后一次出现str的索引位置返回。

//查找字符串里最后一次出现该元素的位置str.lastIndexOf

int lastIndexOf=str.lastIndexOf("1");

System.out.println(lastIndexOf);

用两种方式判断字符串的长度。代码如下:


public class Test1{
	public static void main(String args[]) {
		String str="We are students";//定义字符串str
		int size=str.lastIndexOf("");//将空字符串在str中的索引位置赋值给变量size
		System.out.println("空字符串在字符串str中的索引位置是:"+size);//将变量size输出
		System.out.println("字符串str的长度是:"+str.length());//将字符串str的长度输出
}
}

 运行结果:

获取指定索引位置的字符

使用charAt()方法可将指定索引处的字符返回。

//获取指定索引号的字符

char charAt=str.charAt(3);

System.out.println(charAt);

查看指定索引位置上的字符。代码如下:

public class Test1{
	public static void main(String args[]) {
		String str="hello world";//定义字符串str
		char mychar=str.charAt(6);//将字符串str中索引位置是6的字符返回
		System.out.println("字符串str中索引位置是6的字符为:"+mychar);//输出信息
	}
}

 运行结果:

字符串操作

获取子字符串 

1、substring(int beginIndex)

该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。语法如上:

2、substring(int beginIndex,int endIndex)

该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串。语法如上:

《将进酒》的作者是哪位诗人?代码如下:

public class Test1{
	public static void main(String args[]) {
		String str="《将进酒》:李白(唐)";//定义的字符串
		String substr=str.substring(6,8);//对字符串进行截取
		System.out.println("《将进酒》的作者是"+substr);//输出截取后的字符串
	}	
	}

运行结果:

去除空格

 trim()方法返回字符串的副本,忽略前导空格和尾部空格,语法如下:

str.trim()

去掉字符串首、尾的空格。代码如下:

public class Test1{
	public static void main(String args[]) {
		String str="  Java  class   ";//定义字符串str
		System.out.println("字符串原来的长度:"+str.length());//将str原来的长度输出
		//将str去掉前导和尾部的空格后的长度输出
		System.out.println("去掉空格后的长度:"+str.trim().length());
	}
	}

运行结果:

字符串替换 

replace()方法可实现将指定的字符或字符串替换成新的字符或字符串,语法如下:

str.replace(CharSequence target,CharSequence replacement)

target:要替换的字符或字符串

replacement:用于替换原来字符串的内容

将单词中的字母a替换为字母A,代码如下:

public class Test1{
	public static void main(String args[]) {
		String str="address";//定义字符串str
		String newstr=str.replace("a","A");//将str中“a”替换成"A"并返回新字符串newstr
		System.out.println(newstr);//将字符串newstr输出
	}
}

运行结果:

判断字符串的开始与结尾

1、startsWith()方法

该方法用于判断当前字符串对象的前缀是否为参数指定的字符串。语法如下:

str.startsWith(String prefix)

 prefix:作为前缀的字符串

2、endsWith()方法

该方法用于判断当前字符串是否为以给定的字符串结束。语法如下:

str.endsWith(String suffix)

suffix:作为后缀的字符串

判断字符串是否以指定的内容开始或结束。代码如下:

public class Test1{
	public static void main(String args[]) {
		String num1="22045612";//定义字符串num1
		String num2="21304578";//定义字符串num2
		boolean b=num1.startsWith("22");//判断字符串num1是否以‘22’开头
		boolean b1=num2.endsWith("78");//判断字符串num1是否以‘78’结束
		System.out.println("字符串num1是以‘22’开始的吗?"+b);
		System.out.println("字符串num2以‘78’结束的吗?"+b1);//输出信息
	}
	}

运行结果:

 判断字符串是否相等

      对字符对象进行不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回。

要比较两个字符串内容是相同相等,应使用equals()方法和equalsIgnoreCase()方法 。

1、equals()方法

        如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较时,返回true。否则false。语法如下:

str.equlas(String  otherstr)

2、equalsIgnoreCase()方法 

      使用equlas()方法对字符串进行比较时是区分大小写的,而使用equalsIgnoreCase()方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍然为boolean类型。语法如下:
str.equalsIgnoreCase(String otherstr)

判断”abc“与”ABC“是否相等,代码如下:

public class Test1{
	public static void main(String args[]) {
		String s1=new String("abc");//创建字符串对象s1
		String s2=new String("ABC");//创建字符串对象s2
		boolean b=s1.equals(s2);//使用equals()方法比较s1与s2
		boolean b1=s1.equalsIgnoreCase(s2);//使用equalsIgnoreCase()方法比较s1与s2
		System.out.println(s1+"equals"+s2+":"+b);
		System.out.println(s1+"equalsIgnoreCase"+s2+":"+b1);
	}
	}

运行结果: 

按照字典顺序比较两个字符串

      compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符串的Unicode值,按照字典顺序将String对象表示的字符序列与参数字符串所表示的字符序列进行比较。语法如下:

str.compareTo(String otherstr)

判断字母b的位置。代码如下:

public class Test1{
	public static void main(String args[]) {
//用于比较的3个字符串
		String str=new String("b");
		String str2=new String("a");
		String str3=new String("c");
		System.out.println(str+"compareTo"+str2+":"+str.compareTo(str2));//将str与str2比较的结果输出
		System.out.println(str+"compareTo"+str3+":"+str.compareTo(str3));//将str与str2比较的结果输出
	}
}

运行结果:

字母大小写转换

     String类的toLowerCase()方法可将字符串中的所有大写字母改写为小写字母,而toUpperCase()方法可将字符串中的所有小写字母改为大写字母。

1、toLowerCase()方法

      如果字符串中没有应该被转换的字符,则将原字符串返回;否则将返回一个新的字符串,将原字符串中每个大写字母都转换成小写,字符串长度不变。语法如下:

str.toLower()

2、 toUpperCase()方法

      如果字符串中没有应该被转换的字符,则将原字符串返回;否则返回一个新字符串,将原字符串中每个小写字母都转换成大写,字符串长度不变,语法如下:

str. toUpperCase()

字母大小写转换。代码入如:

public class Test1{
	public static void main(String args[]) {
		String str=new String("oh My God");//创建字符串str
		String newstr=str.toLowerCase();//使用toLowerCase()方法实行小写转换
		String newstr2=str.toUpperCase();//使用toUpperCase()方法实行小写转换
		System.out.println(newstr);
		System.out.println(newstr2);
	}
}

运行结果:

字符串分割线

      使用split()方法可以使字符串按指定的分割线字符或字符串进行分割,并将分割后的结果存放在字符串数组中。split()方法提供了以下两种字符串分割形式。

1、split(String  sign)

    该方法可根据给定的分隔符对字符串进行拆分。语法如下:

str.split(String  sign)

2、split(String sign,int limit)

      该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。语法如下:

str.split(String sign,int limit) 

sign:分割字符串的分割符,也可以使用正则表达式 

limit:限制的分割次数

按要求分割”192.168.0.1“。代码如下:

public class Test1{
	public static void main(String args[]) {
		String str="192.168.0.1";
		String[]firstArray=str.split("\\.");//按照”.“进行分割,使用转义字符串”\\.“
		String[]secondArray=str.split("\\.",2);//按照”.“进行两次分割,使用转义字符串”\\.“
		System.out.println("str的原值为:["+str+"]");//输出str原值
		System.out.print("全部分割的结果:");//输出全部分割的结果
		for(String a:firstArray) {
			System.out.print("["+a+"]");
		}
		System.out.println();//换行
		System.out.print("分割两次的结果:");
		for(String a:secondArray) {
			System.out.print("["+a+"]");	
			}
		System.out.println();
	}
}

运行结果:

格式化字符串

String类的静态format()方法用于创建格式化的字符串。format()方法有两种 重载形式。

1、format(Sring format,Object...args)

该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。语法如下:

str.format(Sring format,Object...args) 

2、format(Local,Sring format,Object...args)

该方法使用指定的语言环境、格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用其指定的语言环境。语法如下:

str. format(Local I,Sring format,Object...args)

日期和时间字符串格式化

      在应用程序设计中,经常需要显示日期和时间。如果想输出满意的日期和时间格式化,一般需要编写大量的代码、经过各种算法才能实现。format()方法通过给定的特殊转换符作为参数来实现对日期和时间的格式化。 

1、日期格式化

先来看一个例子。返回一个月中的天数,代码如下:

Date date=new Date();//创建Date对象date

Stirng s=String.format("%te",date);//通过format()方法date进行格式化

常用的日期格式化转换如图所示

 按照格式输出今天的年、月、日。代码如下:

import java.util.Date;//导入java.util.Date类
public class Test1{
	public static void main(String args[]) {
		Date date=new Date();//创建Date对象date
		String year=String.format("%tY",date);//将date进行格式化
		String month=String.format("%tB",date);
		String day=String.format("%td",date);
		System.out.println("今年是:"+year+"年");//输出信息
		System.out.println("现在是:"+month);
		System.out.println("今天是:"+day+"号");
	}
}

运行结果:

2、时间格式化

     使用format()方法不仅可以完成日期的格式化,也可以实现时间格式化。时间的格式化转换符要比日期的格式化转换符更多、更精确,它可以将时间格式化为时、分、秒、毫。

格式化时间的转换符如图所示

按照格式输出当下的时、分、秒。代码如下:

import java.util.Date;//导入java.util.Date类
public class Test1{
	public static void main(String args[]) {
		Date date=new Date();//创建Date对象date
		String hour=String.format("%tH",date);//将date进行格式化
		String minute=String.format("%tM",date);
		String second=String.format("%tS",date);
		System.out.println("现在是:"+hour+"时"+minute+"分"+second+"秒");//输出信息
		
	}
}

运行结果:

 

3、格式化常见的日期时间组合

 格式化日期与时间组合的转换符定义了各种日期时间组合的格式,其中最常见的如图所示

按照格式输出当下的年、月、日。代码如下:

import java.util.Date;//导入java.util.Date类
public class Test1{
	public static void main(String args[]) {
		Date date=new Date();//创建Date对象date
		String time=String.format("%tc",date);//将date进行格式化
		String form=String.format("%tF",date);
		System.out.println("全部的时间信息是:"+time);//将格式化后的日期时间输出
		System.out.println("年-月-日格式:"+form);
	}
}

运行结果:

常规类型格式化 

 常规类型格式化可应用于任何参数类型,如图所示:

按照转换符获取表达式的结果。代码如下:

public class Test1{
	public static void main(String args[]) {
		String str=String.format("%d",400/2);//将结果以十进制格式显示
		String str2=String.format("%b",3>5);//将结果以Boolean型显示
		String str3=String.format("%x",200);//将结果以十六进制格式显示
		System.out.println("400的一半是"+str);
		System.out.println("3>5正确吗:"+str2);
		System.out.println("200的十六进制数是"+str3);
	}
}

运行结果:

使用正则表达式 

        正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一个格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的云字符。

正则表达式元字符及其意义如图所示:

 

验证E-mail地址是否”合法“。代码如下:

public class Test2{
	public static void main(String[] args) {
		String regex="\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";//定义要匹配E-maill地址的正则表达式
		String str1="aaa@";//定义要进行验证的字符串
		String str2="aaaaa";
		String str3="111@ffyu.dfg.com";
		if(str1.matches(regex)) {//判断字符串变量是否与正则表达式匹配
			System.out.println(str1+"是一个合法的E-mail地址格式");
		}
		if(str2.matches(regex)) {
			System.out.println(str2+"是一个合法的E-mail地址格式");
		}
		if(str3.matches(regex))	{
			System.out.println(str3+"是一个合法的E-mail地址格式");
		}
		}
	}

运行结果:

 字符串生成器

      创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+"可达达到附近新字符或字符串的目的,但”+“会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复对字符串进行修改,将极大地增加系统开销。

效率比拼。代码如下:

public class Test2{
	public static void main(String[] args) {
		String str="";//创建空字符串
		long starTime=System.currentTimeMillis();//定义对字符串执行操作的起始时间
		for(int i=0;i<10000;i++) {//利用for循环执行10000操作
			str=str+i;//循环追加字符
		}
		long endTime=System.currentTimeMillis();
		long time=endTime-starTime;//计算对字符串执行操作的时间
		System.out.println("String消耗时间:"+time);//将执行的时间输出
		StringBuilder builder=new StringBuilder("");//创建字符串生成器
		starTime=System.currentTimeMillis();//更新操作执行前的时间
		for(int j=0;j<10000;j++) {//利用for循环进行操作
			builder.append(j);//循环追加字符
		}
		endTime=System.currentTimeMillis();//更新操作后的时间
		time=endTime-starTime;//更新追加操作执行时间
		System.out.println("StringBuilder消耗时间:"+time);//将操作时间输出
		}
	}

 运行结果:

 1、append()方法 

       该方法用于向字符串生成器中追加内容。通过该方法的多个重载形式,可实现接受任何类型的数据,如int、boolean、char、String、double或者另一个字符串生成器等。语法如下:

append(content)

content:追加到字符串 生成器中的内容

2、insert(int offset,args)方法

     该方法用于向字符串生成器中指定位置插入数据内容。通过该方法的不同重载形式,课实现向字符串生成器中插入int、flaot、char和boolean等基本数据类型的数据或其他对象。语法如下:

insert(int offset args)

 offset:字符串生成器的位置

args:将插入至字符串生成器的位置

3、delete(int start,int end)

      移除此序列的字符串中的字符。该字符串从指定的start处开始,一直到索引end-1处的字符。如果不存在这种字符,则一直到序列尾部。如果start等于end,则不发生任何更改。语法如下:

delete(int start,int end)

 start:将要删除的字符串的起

目录

String类

声明字符串

创建字符串

连接字符串

连接多个字符串

连接其他数据类型 

获取字符串信息 

获取字符串长度

字符串查找

获取指定索引位置的字符

字符串操作

获取子字符串 

去除空格

字符串替换 

判断字符串的开始与结尾

 判断字符串是否相等

按照字典顺序比较两个字符串

字母大小写转换

字符串分割线

格式化字符串

日期和时间字符串格式化

常规类型格式化 

使用正则表达式 

 字符串生成器


点位置

end :将要删除的字符串的终点位置

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java 习题集包括有答案 引 言 6 第一章 JAVA基础 7 一、填空题 7 二、判断题 9 三、选择题 9 四、程序阅读题 26 第二章 控制结构 32 一、选择题 32 二、填空题 48 三、判断题 50 四、程序阅读题 51 五、编程题 55 第三章 字符串 59 一、选择题 59 二、填空题 63 三、判断题 64 四、编程题 65 第四章 数组 66 一、选择题 66 二、判断题 69 三、填空题 70 四、编程题 71 第五章 和对象 73 一、选择题 73 二、填空题 79 三、程序填空 80 四、问答题 93 五、判断题 94 六、编程题 94 第六章 面向对象程序设计 97 一、选择题 97 二、填空题 118 三、判断题 120 四、编程题 123 第七章 数据库的连接 129 一、选择题 129 二、填空题 131 三、判断题 131 四、编程题 131 第八章 多线程 133 一、填空题 133 二、选择题 134 三、多项选择 147 四、判断题 147 五、程序分析题 148 六、程序设计题 149 第九章 异常处理 151 一、选择题 151 二、填空题 155 三、判断题 157 四、程序阅读题 158 五、程序题 163 第十章 文件操作 165 一、选择题 165 二、填空题 170 三、判断题 174 四、读程序题 177 五、问答题 182 六、编程题 183 第十一章GUI界面设计 185 一、选择题 185 二、填空题 194 三、判断题 196 四、程序填空 197 五、简答题 214 六、编程题 214 参考答案 230 第一章 java基础 230 一、填空题 230 二、判断题 232 三、选择题 232 四、程序阅读题 232 第二章 控制结构 233 一、选择题 233 二、填空题 233 三、判断题 235 四、程序阅读题 235 五、编程题 236 第三章 字符串 255 一、选择题 255 二、填空题 255 三、判断题 255 四、编程题 255 第四章 数组 265 一、选择题 265 二、判断题 265 三、填空题 266 四、编程题 266 第五章 和对象 269 一、选择题 269 二、填空题 270 三、程序填空 271 五、判断题 274 六、编程题 274 第六章 面向对象程序设计 293 一、选择题 293 二、填空题 294 三、判断题 295 四、编程题 296 第七章 数据库的连接 352 一、选择题 352 二、填空题 352 三、判断题 353 四、编程题 353 第八章 多线程 356 一、填空题 356 二、选择题 357 三、多项选择 357 四、判断题 357 五、程序分析题 357 六、程序设计题 357 第九章 异常处理 391 一、选择题 391 二、填空题 391 三、判断题 392 四、程序阅读题 392 五、程序题 393 第十章 文件操作 396 一、选择题 396 二、填空题 397 三、判断题 398 四、读程序题 398 五、问答题 399 六、编程题 401 第十一章 GUI界面设计 417 一、选择题 417 二、填空题 417 三、判断题 419 四、程序填空 419 五、简答题 420 六、编程题 422
目录 引言 ...................................................................................................................................... I 第一章程序和程序设计 .......................................................................................................1 §1.1 什么是程序 ?............................................................................................................1 1.1.1 算法.................................................................................................................2 1.1.2 实体.................................................................................................................3 1.1.3 程序.................................................................................................................3 1.1.4 程序设计 .........................................................................................................4 §1.2 程序设计方法与语言 ..............................................................................................5 1.2.1 早期的程序设计 .............................................................................................5 1.2.2 结构化程序设计 .............................................................................................5 1.2.3 面向对象程序设计 .........................................................................................6 §1.3 一个完整的 Java程序.............................................................................................6 1.3.1 Java程序的结构 ..............................................................................................8 1.3.2 Java程序的退化结构 ......................................................................................9 1.3.3 Java程序的运行 ............................................................................................10 1.3.4 Java程序的调试 ............................................................................................11 §1.4 面向对象程序的构造 ............................................................................................11 内容小结.........................................................................................................................12 思考与练习.....................................................................................................................12 上机实习题.....................................................................................................................12 小课题:抽象与抽象层次.............................................................................................13 小课题:程序设计语言的历史.....................................................................................13 第二章基本数据型 .........................................................................................................14 §2.1 数据型概述 ........................................................................................................14 2.1.1 什么是型? ...............................................................................................14 2.1.2 型的作用 ...................................................................................................14 2.1.3 Java语言的型 ............................................................................................15 §2.2 程序中的单词 ........................................................................................................15 2.2.1 单词分 .......................................................................................................15 2.2.2 保留字...........................................................................................................15 2.2.3 标识符...........................................................................................................16 2.2.4 程序中的空白 ...............................................................................................16 §2.3 变量与赋值 ............................................................................................................17 2.3.1 确定数据型 ...............................................................................................17 2.3.2 变量的要素 ...................................................................................................17 2.3.3 赋值运算 .......................................................................................................18 2.3.4 程序的输出 ...................................................................................................18 §2.4 Java语言的简单型 .............................................................................................18 2.4.1 字符型 .......................................................................................................19 2.4.2 整数型 .......................................................................................................19 2.4.3 浮点数型和双精度浮点数型 ...............................................................20 2.4.4 布尔型 .......................................................................................................20 2.4.5 字符串型 ...................................................................................................21 2.4.6 符号常量 .......................................................................................................21 §2.5 表达式....................................................................................................................22 - i - 2.5.1 表达式...........................................................................................................22 2.5.2 算术运算 .......................................................................................................22 2.5.3 关系运算 .......................................................................................................23 2.5.4 逻辑运算 .......................................................................................................23 2.5.5 型转换 .......................................................................................................24 2.5.6 一个小小应用程序 .......................................................................................24 §2.6 编写简单应用程序 ................................................................................................25 2.6.1 最简单的程序 ...............................................................................................25 2.6.2 引入变量的程序 ...........................................................................................26 2.6.3 程序的输入 ...................................................................................................26 2.6.4 完整的程序 ...................................................................................................27 内容小结.........................................................................................................................28 思考与练习.....................................................................................................................28 上机实习题.....................................................................................................................29 小课题:构造性思维方法.............................................................................................29 第三章基本控制结构 .........................................................................................................30 §3.1 简单语句 ................................................................................................................30 §3.2 结构化控制结构 ....................................................................................................30 3.2.1 程序的控制结构 ...........................................................................................30 3.2.2 结构化程序设计工具 ...................................................................................31 3.2.3 盒图与伪码 ...................................................................................................31 §3.3 选择结构 ..............................................................................................................33 3.3.1 不带 else的 if语句 ......................................................................................33 3.3.2 带 else的 if语句 ..........................................................................................35 3.3.3 嵌套 if语句 ..................................................................................................36 3.3.4 垂悬 else问题 ..............................................................................................38 §3.4 循环结构 ..............................................................................................................39 3.4.1 while语句......................................................................................................39 3.4.2 break语句和 continue语句 ..........................................................................42 3.4.3 do_while语句................................................................................................44 3.4.4 for语句..........................................................................................................46 §3.5 原始算法与精美算法 ............................................................................................47 3.5.1 求解问题的精美算法 ...................................................................................47 3.5.2 求解问题的原始算法 ...................................................................................48 §3.6 一个应用程序例子 ................................................................................................48 内容小结.........................................................................................................................50 思考与练习.....................................................................................................................51 上机实习题.....................................................................................................................52 第四章方法.........................................................................................................................53 §4.1 例程机制 ................................................................................................................53 4.1.1 分而治之与软件重用 ...................................................................................53 4.1.2 Java语言的方法 ............................................................................................54 4.1.3 两个例子 .......................................................................................................54 §4.2 方法的声明与调用 ................................................................................................56 4.2.1 方法的声明 ...................................................................................................56 4.2.2 方法的调用 ...................................................................................................57 4.2.3 方法的接口与实现 .......................................................................................58 §4.3 方法的参数 ............................................................................................................59 4.3.1 参数设计 .......................................................................................................59 4.3.2 按值调用 .......................................................................................................61 §4.4 标识符的作用域 ....................................................................................................61 - ii - 4.4.1 作用域规则 ...................................................................................................62 4.4.2 标识符命名冲突 ...........................................................................................63 §4.5 使用 Java API ........................................................................................................63 4.5.1 数值运算 .......................................................................................................63 4.5.2 伪随机数 .......................................................................................................64 §4.6 递归程序设计 ........................................................................................................65 4.6.1 简单递归程序 ...............................................................................................65 4.6.2 梵塔问题 .......................................................................................................66 内容小结.........................................................................................................................67 思考与练习.....................................................................................................................68 上机实习题.....................................................................................................................69 小课题:计算机辅助教学.............................................................................................69 第五章与对象 .................................................................................................................70 §5.1 声明一个 ............................................................................................................70 5.1.1 的声明 .......................................................................................................70 5.1.2 成员的访问控制 .......................................................................................71 5.1.3 作用域 .......................................................................................................72 §5.2 创建对象实例 ........................................................................................................73 5.2.1 对象的声明与使用 .......................................................................................73 5.2.2 对象的初始化 ...............................................................................................74 5.2.3 静态成员 .......................................................................................................76 5.2.4 对象的参数传递方式 ...................................................................................78 §5.3 变量和对象实例的生存期 ....................................................................................79 5.3.1变量的生存期 ................................................................................................80 5.3.2对象实例的生存期 ........................................................................................80 §5.4 字符串 String.....................................................................................................82 5.4.1 使用 String型的对象 ...............................................................................82 5.4.2 String的主要方法 ...................................................................................82 5.4.3 使用字符串对象的例子 ...............................................................................84 §5.5 关于和对象的进一步讨论 ................................................................................86 5.5.1 基本数据型的包装 ...............................................................................86 5.5.2 抽象数据型 ...............................................................................................87 5.5.3 设计良好的接口 .......................................................................................88 5.5.4 再论对象 .......................................................................................................88 5.5.5 再论 Java语言的......................................................................................89 内容小结.........................................................................................................................90 思考与练习.....................................................................................................................90 上机练习题.....................................................................................................................92 小课题:命令行交互方式.............................................................................................92 第六章复合数据型 .........................................................................................................93 §6.1 使用数组变量 ........................................................................................................93 6.1.1 数组变量的声明 ...........................................................................................93 6.1.2 访问数组元素 ...............................................................................................94 6.1.3 数组作为参数传递 .......................................................................................95 §6.2 数组应用举例 ........................................................................................................96 6.2.1 学生成绩管理 ...............................................................................................96 6.2.2 完整的程序 ...................................................................................................96 6.2.3 冒泡排序法 ...................................................................................................99 §6.3 使用二维数组变量 ..............................................................................................100 6.3.1 什么是二维数组? .....................................................................................100 6.3.2 使用二维数组 .............................................................................................101 - iii - 6.3.3 二维数组应用举例 .....................................................................................101 §6.4 一个扑克牌游戏程序 ..........................................................................................102 6.4.1 分析问题 .....................................................................................................102 6.4.2 建模.............................................................................................................103 6.4.3 完整的程序 .................................................................................................103 §6.5 高级数据结构的构造 ..........................................................................................106 §6.6 对象实例的复制与比较 ......................................................................................108 6.6.1 对象实例的复制 .........................................................................................108 6.6.2 对象实例的比较 .........................................................................................112 内容小结.......................................................................................................................113 思考与练习...................................................................................................................113 上机实习题...................................................................................................................115 第七章继承与多态 ...........................................................................................................116 §7.1 继承的基本概念 ..................................................................................................116 7.1.1 IS-A关系..................................................................................................116 7.1.2 继承机制 .....................................................................................................116 7.1.3 继承的作用 .................................................................................................117 7.1.4 继承与软件重用 .........................................................................................118 §7.2 Java语言的继承机制 ...........................................................................................118 7.2.1 继承的语法 .................................................................................................118 7.2.2 继承与成员访问控制 .................................................................................120 7.2.3 继承成员的调整 .........................................................................................121 7.2.4 子对象实例的存储组织 .........................................................................122 7.2.5 继承与对象初始化及收尾 .........................................................................124 7.2.6 继承与子型 .............................................................................................125 §7.3 多态性的基本概念 ..............................................................................................126 7.3.1 程序的多态性 .............................................................................................126 7.3.2 表示独立性 .................................................................................................127 §7.4 方法重载 ..............................................................................................................127 7.4.1 方法重载的途径 .........................................................................................128 7.4.2 方法重载的二义性 .....................................................................................130 7.4.3 构造方法的重载 .........................................................................................133 §7.5 动态绑定 ..............................................................................................................133 §7.6 对继承和多态的进一步讨论 ..............................................................................135 7.6.1 单继承与多继承 .........................................................................................135 7.6.2 最终与抽象 .........................................................................................136 7.6.3 属机制 .....................................................................................................139 7.6.4 层次设计 .................................................................................................140 内容小结.......................................................................................................................141 思考与练习...................................................................................................................142 上机实习题...................................................................................................................146 小课题:为 Java语言引入属机制 ..........................................................................147 第八章接口与程序包 .......................................................................................................148 §8.1 接口......................................................................................................................148 8.1.1 接口的作用 .................................................................................................148 8.1.2 接口的声明 .................................................................................................149 8.1.3 接口与 .....................................................................................................150 8.1.4 接口的继承 .................................................................................................154 8.1.5 接口与多态性 .............................................................................................155 §8.2 程序包..................................................................................................................157 8.2.1 Java程序的组织 ..........................................................................................157 - iv - 8.2.2 程序包的定义 .............................................................................................158 8.2.3 程序包的引入 .............................................................................................159 8.2.4 包级访问控制 .............................................................................................161 8.2.5 Java的系统程序包 ......................................................................................163 §8.3 嵌套..................................................................................................................164 8.3.1 嵌套的种 .............................................................................................164 8.3.2 内部.........................................................................................................165 8.3.3 回调机制 .....................................................................................................168 8.3.4 静态.........................................................................................................171 内容小结.......................................................................................................................171 思考与练习...................................................................................................................172 上机实习题...................................................................................................................177 第九章异常处理与断言 ...................................................................................................178 §9.1 异常处理的基本概念 ..........................................................................................178 9.1.1 异常处理 .....................................................................................................178 9.1.2 异常处理的模式 .........................................................................................179 §9.2 Java语言的异常处理机制 ...................................................................................180 9.2.1 异常的分 .................................................................................................180 9.2.2 Java标准异常简介 ......................................................................................181 9.2.3 异常的捕获与处理 .....................................................................................182 9.2.4 异常的匹配 .................................................................................................184 9.2.5 异常处理与收尾 .........................................................................................184 9.2.6 异常处理与构造方法 .................................................................................186 9.2.7 异常的转发 .................................................................................................187 9.2.8 异常声明与方法重载 .................................................................................188 9.2.9 异常处理与继承机制 .................................................................................188 §9.3 程序断言机制 ......................................................................................................191 9.3.1 程序断言 .....................................................................................................191 9.3.2 程序断言的用法 .........................................................................................192 9.3.3 在 Java语言中实现部分断言....................................................................193 内容小结.......................................................................................................................195 思考与练习...................................................................................................................195 上机实习题...................................................................................................................197 第十章输入/输出流 .......................................................................................................198 §10.1输入/输出基本概念 ........................................................................................198 10.1.1 外部设备与文件 .......................................................................................198 10.1.2 文件的基本概念 .......................................................................................198 10.1.3 输入/输出流 ...........................................................................................199 §10.2 Java流系统概述 .................................................................................................199 10.2.1 面向字节的输入流 ...............................................................................200 10.2.2 面向字节的输出 ...............................................................................201 10.2.3 面向字符的输入流 ...............................................................................203 10.2.4 面向字符的输出 ...............................................................................204 10.2.5 Java API定义的流对象 ............................................................................205 §10.3文件流................................................................................................................206 10.3.1 文件及文件目录的操作 ...........................................................................206 10.3.2 文件内容的顺序读写 ...............................................................................208 10.3.3 文件内容的随机读写 ...............................................................................209 §10.4过滤器流 ............................................................................................................210 10.4.1 装饰模式 ...................................................................................................210 10.4.2 数据转换流 ...............................................................................................211 - v - 10.4.3 带行号的输入流 .......................................................................................212 10.4.4 设计自己的过滤器流 ...............................................................................213 §10.5对象串行化 ........................................................................................................215 10.5.1 对象串行化的作用 ...................................................................................215 10.5.2 对象串行化的基本方法 ...........................................................................216 10.5.3 串行化自己的对象 ...................................................................................217 §10.6其它型的流简介 ............................................................................................219 10.6.1 管道流 .......................................................................................................219 10.6.2 连接流 .......................................................................................................220 内容小结.......................................................................................................................221 思考与练习...................................................................................................................222 上机实习题...................................................................................................................222 小课题:设计词法分析程序.......................................................................................223 第十一章对象容器...........................................................................................................224 §11.1 对象容器的基本概念 ........................................................................................224 §11.2 Java对象容器概述 .............................................................................................225 11.2.1 Java对象容器接口及其骨架 ................................................................225 11.2.2 Java的对象容器 ....................................................................................226 11.2.3支持对象容器的辅助工具 ........................................................................228 §11.3 迭代器................................................................................................................229 11.3.1迭代器设计模式 ........................................................................................229 11.3.2迭代器的基本用法 ....................................................................................230 11.3.3列表专用迭代器 ........................................................................................230 11.3.4旧版本的枚举接口 ....................................................................................232 §11.4 集容器 ............................................................................................................232 11.4.1集容器接口 ............................................................................................232 11.4.2列表容器 ....................................................................................................235 11.4.3集合容器 ....................................................................................................238 §11.5 映射容器 ............................................................................................................240 11.5.1映射容器接口 ............................................................................................240 11.5.2映射容器 ................................................................................................245 §11.6 对象容器操纵工具 ............................................................................................247 11.6.1数组操纵工具 ...........................................................................................247 11.6.2容器操纵工具 ...........................................................................................249 内容小结.......................................................................................................................251 思考与练习...................................................................................................................252 上机实习题...................................................................................................................253 小课题:对象容器的性能比较...................................................................................253 第十二章图形用户界面...................................................................................................255 §12.1用户界面设计概述 ............................................................................................255 12.1.1 用户界面设计原则 ...................................................................................255 12.1.2 用户界面设计内容 ...................................................................................256 §12.2 Java程序的用户界面设计 .................................................................................257 12.2.1 Java程序的用户界面 ................................................................................257 12.2.2 GUI系统的组成........................................................................................257 12.2.3 AWT和 Swing组件 ..................................................................................258 §12.3 Swing概述 .........................................................................................................258 12.3.1 Swing组件 ................................................................................................258 12.3.2 Swing的 M-UI设计模式 .........................................................................259 12.3.3 Swing的事件处理模式.............................................................................260 12.3.4 一个简单的 GUI程序..............................................................................262 - vi - 12.3.5 JComponent简介.................................................................................265 §12.4 Swing顶层容器 .................................................................................................268 12.4.1 画框的使用 ...............................................................................................268 12.4.2 对话框的使用 ...........................................................................................269 §12.5 Swing中间容器 .................................................................................................272 12.5.1 分隔窗格的使用 .......................................................................................272 12.5.2 滚动窗格的使用 .......................................................................................273 12.5.3 带标签窗格的使用 ...................................................................................278 12.5.4 工具条的使用 ...........................................................................................280 §12.6 Swing原子控件 .................................................................................................281 12.6.1 标签的使用 ...............................................................................................281 12.6.2 按钮的使用 ...............................................................................................283 12.6.3 检查框的使用 ...........................................................................................286 12.6.4 广播按钮的使用 .......................................................................................289 12.6.5 组合框的使用 ...........................................................................................290 12.6.6 列表的使用 ...............................................................................................294 12.6.7 文本控件的使用 .......................................................................................300 12.6.8 表格的使用 ...............................................................................................307 12.6.9 菜单的使用 ...............................................................................................311 §12.7 Swing的布局管理 .............................................................................................316 12.7.1 布局管理器概述 .......................................................................................316 12.7.2 顺序布局管理器 .......................................................................................317 12.7.3 边界布局管理器 .......................................................................................318 12.7.4 网格布局管理器 .......................................................................................318 12.7.5 网格包布局管理器 ...................................................................................319 12.7.6 盒式布局管理器 .......................................................................................321 12.7.7 卡片布局管理器 .......................................................................................322 12.7.8 组件的绝对定位 .......................................................................................323 12.7.9 边框的使用 ...............................................................................................324 §12.8编写小应用程序 ................................................................................................328 12.8.1 Applet的特点 ............................................................................................328 12.8.2 Applet的编程模式 ....................................................................................328 12.8.3 Applet的编程举例 ....................................................................................330 内容小结.......................................................................................................................332 思考与练习...................................................................................................................332 上机实习题...................................................................................................................333 第十三章数据库编程初步...............................................................................................334 §13.1关系数据库与 SQL简介 ..................................................................................334 13.1.1 关系数据库的基本概念 ...........................................................................334 13.1.2 创建关系数据库举例 ...............................................................................334 13.1.3 SQL简介 ...................................................................................................337 §13.2 JDBC结构与原理..............................................................................................341 13.2.1 数据库应用的多层结构 ...........................................................................341 13.2.2 JDBC的结构.............................................................................................342 13.2.3 建立使用 JDBC的运行环境 ...................................................................343 §13.3 JDBC应用入门..................................................................................................344 13.3.1 使用 JDBC的编程模式 ...........................................................................344 13.3.2 Java与 SQL间的数据型映射 ..............................................................347 13.3.3 使用数据表的元信息 ...............................................................................349 13.3.4 封装与数据库访问有关的操作 ...............................................................350 §13.4数据库应用程序举例 ........................................................................................353 - vii - 13.4.1 需求分析 ...................................................................................................353 13.4.2 系统设计 ...................................................................................................354 13.4.3 编码实现 ...................................................................................................356 内容小结.......................................................................................................................367 思考与练习...................................................................................................................368 上机实习题...................................................................................................................369 第十四章多线程编程.......................................................................................................370 §14.1线程的基本概念 ................................................................................................370 14.1.1 什么是线程? ...........................................................................................370 14.1.2 Java程序中的线程 ....................................................................................370 §14.2线程生存期与线程调度 ....................................................................................371 14.2.1 创建线程 ...................................................................................................371 14.2.2 Java程序的主线程 ....................................................................................373 14.2.3 线程的生存期 ...........................................................................................373 14.2.4 使用 yield()方法 .......................................................................................374 14.2.5 优先级与线程调度 ...................................................................................375 14.2.6 线程组 .......................................................................................................377 14.2.7 守护线程 ...................................................................................................378 §14.3资源共享与线程同步 ........................................................................................379 14.3.1 线程安全性 ...............................................................................................379 14.3.2 同步代码段与锁 .......................................................................................380 14.3.3 设计线程安全的应用程序 .......................................................................382 §14.4其他线程通信方式 ............................................................................................383 14.4.1 使用 sleep()方法.......................................................................................383 14.4.2 使用 join()方法.........................................................................................383 14.4.3 使用 wait()/notify()/notifyAll()方法.........................................................384 14.4.4 使用 I/O操作 ...........................................................................................386 14.4.5 不主张使用方法 ...................................................................................386 §14.5使用定时器 ........................................................................................................387 14.5.1 通用定时器 ...............................................................................................387 14.5.2 Swing专用定时器.....................................................................................389 §14.6高级多线程设计 ................................................................................................389 14.6.1 并发模型 ...................................................................................................389 14.6.2 互斥问题 ...................................................................................................391 14.6.3 生产者∕消费者问题 ...............................................................................393 内容小结.......................................................................................................................396 思考与练习...................................................................................................................396 上机实习题...................................................................................................................397 小课题:资源池与线程池...........................................................................................397 第十五章网络通信编程...................................................................................................399 §15.1网络通信的基本概念 ........................................................................................399 15.1.1 通信协议 ...................................................................................................399 15.1.2 TCP与 UDP ..............................................................................................401 15.1.3 端口...........................................................................................................401 15.1.4 Java对网络通信的支持 ............................................................................402 §15.2基于 URL的通信..............................................................................................403 15.2.1 使用 URL对象.........................................................................................403 15.2.2 使用 URL连接.........................................................................................405 §15.3基于 TCP的通信 ..............................................................................................407 15.3.1 指定主机 ...................................................................................................407 15.3.2 基于 socket的 C/S编程...........................................................................408 - viii - 15.3.3 多线程服务程序 .......................................................................................411 §15.4典型的因特网应用 ............................................................................................413 15.4.1 一个简单的端口扫描程序 .......................................................................413 15.4.2 一个简单的 HTTP服务程序...................................................................414 15.4.3 一个简单的 Telnet客户程序...................................................................415 15.4.4 一个简单的 SMTP客户程序 ..................................................................417 §15.5基于 UDP的通信..............................................................................................418 15.5.1 单播通信 ...................................................................................................418 15.5.2 多播通信 ...................................................................................................422 内容小结.......................................................................................................................424 思考与练习...................................................................................................................424 上机实习题...................................................................................................................425 第十六章结束语...............................................................................................................426 §16.1设计原则 ............................................................................................................426 16.1.1 设计原则与设计模式 ...............................................................................426 16.1.2 B. Meyer的设计原则................................................................................426 16.1.3 R. Martin的设计原则 ...............................................................................427 §16.2设计模式 ............................................................................................................428 16.2.1 什么是模式 ...............................................................................................428 16.2.2 GoF设计模式 ............................................................................................429 16.2.4 POSA设计模式.........................................................................................431 16.2.5 反模式 .......................................................................................................431 §16.3分布式对象技术 ................................................................................................432 16.3.1 进程内通信与进程间通信 .......................................................................432 16.3.2 实现网络通信的途径 ...............................................................................432 16.3.3 分布式对象系统 .......................................................................................432 内容小结.......................................................................................................................433 思考与练习...................................................................................................................433 上机实习题...................................................................................................................434

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值