Top Banner
1 教教教教教教教教教教教 教教教教教教教 教教教教教教教 教教教教 教教教 教教教教教教教教教教 教教教教教教教教教 教教教教教教教教教教 教教2 教2教 教教教 教教
63

第 2 章 字符串 数组

Jan 01, 2016

Download

Documents

fritz-calhoun

第 2 章 字符串 数组. 教学内容: 数组的基本概念 数组元素的访问 栈内存和堆内存 多维数组 字符串 重点: 数组的定义与访问 难点: 栈内存和堆内存 多维数组的定义与应用 学时: 2. 2.6 字符串. 字符串常量,包括直接字符串常量和 String 类的对象。字符串常量的值一旦创建不会再变动。 字符串变量,指的是 StringBuffer 类的对象。创建字符串变量的值之后允许对其进行扩充、修改。. C 中:字符数组 结尾 \0 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 第 2 章    字符串 数组

1

教学内容: 数组的基本概念 数组元素的访问 栈内存和堆内存 多维数组 字符串 重点: 数组的定义与访问难点: 栈内存和堆内存 多维数组的定义与应用学时: 2

第 2章 字符串 数组

Page 2: 第 2 章    字符串 数组

2

2.6 字符串

字符串常量,包括直接字符串常量和 String 类的对象。字符串常量的值一旦创建不会再变动。

字符串变量,指的是 StringBuffer 类的对象。创建字符串变量的值之后允许对其进行扩充、修改。

Page 3: 第 2 章    字符串 数组

3

C 中:字符数组 结尾 \0char s1[ ] =“abcd”;

Java final 类 String :不变字符串final 类 StringBuffer :可变字符串

字符串被当作对象来处理String 类 : 创建之后不能再做修改的字符串常量StringBuffer 类:创建之后允许再做更改的字符串变量

Page 4: 第 2 章    字符串 数组

4

2.6.1 String 1 字符串常量

使用“”定义字符串 (‘’定义字符)。“abc”,” 欢迎使用 Java”   是字符串。‘a’ ,’ b’ ,’ c’       是字符。

String s1 = “ 上海师范大学” ;

Page 5: 第 2 章    字符串 数组

5

声明 String 变量 格式一:String < 变量名 > ;< 变量名 > = new String(” 字符串” ) ;

String s;    // 声明字符串型引用变量 s ,此时 s 的值为 null

s=new String(”Hello”); // 在堆内存中分配空间,并 将 s 指向该字符串首地址格式二:

String < 变量名 >=new String(” 字符串” ) ;如: String s=new String(”Hello”);

格式三:String < 变量名 >=” 字符串”;如: String s=”Hello”

Page 6: 第 2 章    字符串 数组

6

String s1; s1 = “abcd” + “efg”; s1 = “ab” + 4.5 ;

Page 7: 第 2 章    字符串 数组

7

2 String 类的常用方法

调用 Java 定义的格式:< 字符串变量名 >.< 方法名 > ;

Page 8: 第 2 章    字符串 数组

8

String 类的常用方法

方 法 说 明

public int length() 返回字符串的长度。

public boolean equals(Object anObject)将给定字符串与当前字符串相比较,若两字符串相等,则返回 true,否则返回 false。

public String substring(int beginIndex) 返回字符串中从 beginIndex开始的子串。

public String substring(int beginIndex, int endIndex)

返回从 beginIndex开始到 endIndex前的子串。

public char charAt(int index) 返回 index指定位置的字符。

public int indexOf(String str) 返回 str在字符串中第一次出现的位置。

public String replace(char oldChar, char newChar)

以 newChar字符替换串中所有 oldChar字符。

public String trim() 去掉字符串的首尾空格。

Page 9: 第 2 章    字符串 数组

9

• 1 public int length( ) :返回字符串长度(注意汉字) String s1=“abcd”; String s2=“ 上海师范大学” ; System.out.println( s1.length() );

• 2 boolean toUpperCase(); String s1="abcAA" ,s2 ; s2 = s1.toUpperCase(); //s1 改变了吗? System.out.println(s2 );

Page 10: 第 2 章    字符串 数组

10

• Character 类:• boolean isUpperCase( char );

char c1='a';boolean b1; b1 = Character.isUpperCase(c1); System.out.print(b1);

Page 11: 第 2 章    字符串 数组

11

• 3 检索• 查找字符或字符串,

• 找到 : 返回字符所在位置, (0 到 length -1 )• 找不到: -1

• int indexOf(int ch) • int indexOf(int ch , int fromIndex)int indexOf(String str) int indexOf(String str, int fromIndex)

String s1;s1 = new String(“abc12bcd”);int nPos1,nPos2,nPos3,nPos4;nPos1 = s1.indexOf( ‘a’);nPos2 = s1.indexOf(‘b’,2);

nPos3 = s1.indexOf( “bc”);nPos4 = s1.indexOf(“bc”,2);

String s1;s1 = new String(“abc12bcd”);int nPos1,nPos2,nPos3,nPos4;nPos1 = s1.indexOf( ‘a’);nPos2 = s1.indexOf(‘b’,2);

nPos3 = s1.indexOf( “bc”);nPos4 = s1.indexOf(“bc”,2);

Page 12: 第 2 章    字符串 数组

12

• 4 取字符串的字串或字符

• char charAt ( int index ) //index 从 0 开始 String substring(int beginIndex) String substring(int beginIndex,int endIndex)

从 beginIndex 下一个位置开始到 endIndex 的字串

String s1char c1;s1 = new String(“abc12bcd”);c1 = s1.charAt( 3);

String ss1 ,ss2;ss1 = s1.substring(5);ss2 = s1.substring (3,6);

Page 13: 第 2 章    字符串 数组

13

4 字符串的修改• 切记:不能直接修改 String 字符串本身,而是生成一

新的字符串• String toLowerCase()String toUpperCase() String replace(char oldChar,char newChar)String replaceAll(String rx , String replacement)String trim()

例:

String s1=“abc12bcd”;String s2 , s3 , s4 , s5,s6;s2 = s1.toUpperCase();System.out.print(s1); //??System.out.print(s2);

s3 = s1.replace(‘b’,’H’);s4 = s1.replaceAdll(“bc”,’HK’);

s5 = “ abc “;s6 = s5.trim() ;s6 = s5 + “china”

Page 14: 第 2 章    字符串 数组

14

5 字符串比较:== 是否同一个引用 (地址是否相同)boolean equals(Object anObject): true/falseint compareTo(String anotherString)

相等 0 , 大于 1 , 小于 -1String s1 =“abcd”;String s2 = “abcde”;string s3 = new String(“abcd”);

boolean b1,b2,b3,b4;b1 = s1 ==s2;b2 = s1.equals(s2);

b3 = s1 ==s3;b4 = s1.equals(s3);

String s1 =“abcd” ;String s2 = “abc”;int n; n = s1.compareTo( s2);

Page 15: 第 2 章    字符串 数组

15

字符串常量:存储在字符串池中,且相同内容的字符串常量只存储一次。String s1 =new String( “abcd”);String s2 = new String(“abcd”);boolean b1 ;b1 = s1==s2; //false

s1

abcd

s2

abcd

s3

abcd

s4

String s3 = “abcd”;String s4 = “abcd”;boolean b2 ;b2 = s3==s4; //true

s2 == s3?

Page 16: 第 2 章    字符串 数组

16

• 6 字符串类与其他类型的转换• static String valueOf(char data[])• static String valueOf(char data[],int offset,int

count)• static String valueOf(boolean b)• static String valueOf(char c)• static String valueOf(int i) • static String valueOf(long l)• static String valueOf(float f)• static String valueOf(double d)

例:

int x = 245;

String s1 ;

s1 = String.valueOf( x );

Page 17: 第 2 章    字符串 数组

17

string 实例String s1=“abcdoobc”;int len = s1.length() ;

int pos1 = s1.indexof( ‘b’); int pos2 = s1.indexof( ‘bc’); int pos3 = s1.indexof( ‘b’,3); int pos2 = s1.indexof( “bc”,4);

char c1 = s1.charAt( 3)

string ss1 = s1.substring( 5)

string ss2 = s1.substring( 4 , 6)

string s6 = s1.replace(‘b’,’k’);

Page 18: 第 2 章    字符串 数组

18

//String 相等判断String a1;a1 =new String(“abc”);String a2 = “abc”;System.out.print(a1==a2);

boolean b1;b1 = a1.equals(a2);

int k = a1.compareTo(a2);

int x = 134;string aa ;aa = String.valueOf( x ); // 数值型转换成字符串

Page 19: 第 2 章    字符串 数组

19

public class app5_6 { public static void main(String args[]) { String str=”rotor”; int i=0,n; boolean yn=true; // 是否是回文 if (args.length>0)   str=args[0]; System.out.println(“str=”+str); n=str.length(); char schar,echar; while (yn && (i<n/2)) { // 算法 1 schar=str.charAt(i); // 返回 str 正数第 i 个位置的字符 echar=str.charAt(n-i-1); // 返回 str 倒数第 i 个位置的字符   if (schar==echar)

i++; else

yn=false; }   System.out.println(“ 算法 1 :” +yn);

【例 6 】判断回文字符串。

Page 20: 第 2 章    字符串 数组

20

String temp=””,sub1=””; for (i=0;i<n;i++) {

sub1=str.substring(i,i+1); // 将 str 的第 i 个字符载取下来 temp=sub1+temp; // 将载下来的字符放在字符串 temp

的首位置 } System.out.println(“temp=”+temp); System.out.println(“ 算法 2 :” +str.equals(temp)); }}

【例 5.6 】续

Page 21: 第 2 章    字符串 数组

21

2.6.2 StringBuffer

StringBuffer < 变量 >=new StringBuffer( 参数 )

StringBuffer s1 = new StringBuffer(“ 足球” );

Page 22: 第 2 章    字符串 数组

22

2 StringBuffer 方法1) StringBuffer append(String str);

String s1="abcde"; StringBuffer sb1 = new StringBuffer("1234"); StringBuffer sb2; sb2 = sb1.append(s1); System.out.println(sb1); System.out.println(sb2);

Page 23: 第 2 章    字符串 数组

23

2)StringBuffer insert(int offset,char ch); StringBuffer insert(int offset,String str); 把 ch 插入到 offset 后面 StringBuffer sb1 = new StringBuffer("1234"); StringBuffer sb2; sb2 = sb1.insert(1,'T'); System.out.println(sb1); System.out.println(sb2);3 ) StringBuffer delete(int start,int end);4) StringBuffer reverse();

Page 24: 第 2 章    字符串 数组

24

main() 方法的参数 • public static void main( String args[ ] ){ .. }• main 方法的参数是在运行程序时通过命令行来输入

的,并保存到一个字符串 args 数组中去。

• 在命令行运行的一般形式:• java < 类文件名 > < 字串 1> < 字符串 2> …< 字串 n>

• 如: java demo abcd 1234

Page 25: 第 2 章    字符串 数组

25

class mainDemo { public static void main( String args[ ] ){ System.out.println( args[0]); System.out.println( args[1]); }}

运行:java mainDemo aaa bbb

输出: aaa

bbb

Page 26: 第 2 章    字符串 数组

26

练习:1 写出实现如下功能的代码。String s1 = new String( “ abcd1234abab

”);1) s1 中有无 “ c” 字符 , 位置?2 ) s1 中有几个 ab, 位置如何?3 )取出 s1 中的 “ 34ab” 。4 )把 s1 转换成大写存入字符串 s25) 把 s1 字符串中的 ab 转换成 car ,存入 s3

Page 27: 第 2 章    字符串 数组

27

1 将 字符串 “ ab12cd123ef” 中的数值 12 , 123 取出并转换成整数,然后相加后输出。

2 从键盘输入两个字符串,比较是否相等,第一个字串大则输出 1 ,相等输出 0 ,小于输出 -1 。

3 在数组中存储 10 个学生的姓名,然后查找“李开” 是否在其中。

4 查找字符串 “ abc12 ab cars bcakmd” 中有几个 c,输出其在字符串中的位置。

String s1="abc12 ab cars bcakmdca";int pos=0;int nCnt =0;while (pos!=-1){ pos = s1.indexOf("c" , pos ); if (pos!=-1){

System.out.print(pos+" "); nCnt++; pos++;

}}System.out.println();System.out.println( "Cnt: "+nCnt );

Page 28: 第 2 章    字符串 数组

28

5 StringBuffer s1 = new StringBuffer(“abcd”); 1) 把 s1 改为 ab 测试 cd. 2) 把 s1 中的 b 删除。

Page 29: 第 2 章    字符串 数组

29

2.7 数组

Page 30: 第 2 章    字符串 数组

30

6 String 的 Equals 方法与 == 的区别。 String s1 = new String(“abcd”); String s2 = “abcd”; String s3 = “abcd”;

boolean b1 , b2; b1 = s1==s2; ?

b2 = s2==s3; ?

2 数组定义int n=5;int a[n];a[0] = 3;a[n]=9;

Page 31: 第 2 章    字符串 数组

31

栈与堆

a=3

栈程序中分配

栈底

PC

b=7

堆 自由内存

int a=3 ;int b=7;int x [ ] ; x = new int [10 ];

000x8000 X[0]

X[1]

X[2]

X[9]

0x8000 X

Page 32: 第 2 章    字符串 数组

32

数组的基本概念数组就是相同数据类型的元素按一定顺序排

列的集合。数组中的每个元素都具有相同的数据类型,

可以用一个统一的数组名和一个下标来惟一地确定数组中的元素。

Page 33: 第 2 章    字符串 数组

33

使用 Java 的数组一般要经过三个步骤:1 声明数组2 创建空间3 赋值

2.7.1 一维数组

Page 34: 第 2 章    字符串 数组

34

一、 数组定义数组类型 数组名 [ ] ; 或 数组类型 [ ] 数组名;

1 数组类型:简单数据类型 和 类。2 定义时仅定义了对数组的引用,未对数组分配内存。

二、生成数组(分配内存) 数组名 = new 数据类型 [ 数组大小 ]

int a[ ]; //C++ 如何?int [ ] a;TDate d1[ ] ;

int a[ ] ; a = new int [10 ];int b = new int[9];

TDate d1[ ] ;d1 = new TDate[4];

Page 35: 第 2 章    字符串 数组

35

数组定义内存示意

a=3

内存栈

栈底

PC

b=7

堆存栈

int a=3 ;int b=7;int x [ ] ; x = new int [10 ];

000x8000 X[0]

X[1]

X[2]

X[9]

0x8000 X

Page 36: 第 2 章    字符串 数组

36

2.7.1.1 一维数组元素的访问数组元素的引用方式:

数组名 [ 下标 ]Java 数组的下标是从 0 开始的。数组名 .length 数组的元素个数

int x[ ] = new int [10];x[0] 数组中第 1 个元素x[1] 第 2 个元素x[9] 为第 10 个元素 x.length ?

Page 37: 第 2 章    字符串 数组

37

【例 1 】声明一个一维数组,其长度为 5 ,利用循环对数组元素进行赋值,然后再利用另一个循环逆序输出数组元素的内容。程序代码如下:

public class app5_1 { public static void main(String args[ ]) {

int i;int a[ ];

a=new int[5]; for(i=0;i<5;i++)

a[i] = i ;

for(i=a.length-1 ; i>=0; i--) System.out.println(“a[”+i+”]=”+a[i]);

}}

Page 38: 第 2 章    字符串 数组

38

2.7.2 一维数组的初始化及应用

1 默认初始化2 数组初始化格式:

数据类型 数组名 [ ] ={初值 0 ,初值 1 ,…,初值 n};

例如:int a[]={1,2,3,4,5};

Page 39: 第 2 章    字符串 数组

39

【例 2 】有 n 个互不相同的数,不用排序求出其中的最大值和次最大值。public class app5_2 { public static void main(String args[ ]){ int i,Max,Sec; int a[]={8,50,20,7,81,55,76,93}; if (a[0]>a[1]){ Max=a[0]; Sec=a[1]; } else { Max=a[1]; Sec=a[0]; }

for(i=2;i<a.length;i++){ if (a[i]>Max){ Sec=Max; Max=a[i]; } else if (a[i]>Sec) Sec=a[i]; } System.out.println(Max); System.out.println(Sec); }}

Page 40: 第 2 章    字符串 数组

40

练习:1 有 6 个数 5,3,8,2,4,1 存入数组,然后输出最

小值2 有 6 个数 5,3,8,2,4,1 , 从大到小输出3 有 10 个 1-100 之间的随机数,从小到大输出 随机数生成: Math.random() 0-1 间的数4 改错: int a[3]; a[1]=4; a[2]=8;a[3]=6;

Page 41: 第 2 章    字符串 数组

41

例如:int d[] = { 5,3,8,2,4,1};

int nCnt = 6;

int i , j , temp;for (i=0;i<nCnt;i++){

for( j=i+1;j<nCnt;j++)if (d[i]>d[j]){

temp = d[i]; d[i]=d[j];d[j]=temp;}

}for (i=0;i<nCnt;i++) System.out.print(d[i]+" ");

Page 42: 第 2 章    字符串 数组

42

2.7.3.1 二维数组

声明与分配内存的格式:

数据类型 数组名 [ ] [ ];数组名 = new 数据类型 [ 行数 ] [列数 ];

或:数据类型 数组名 [ ] [ ] = new 数据类型 [ 行数 ][列数 ] ;

2.7.3 多维数组

Page 43: 第 2 章    字符串 数组

43

int a[][]; a = new int[3][5];

a[0][0]=1;

a[0][1]=2;

a[1][0]=11;

a.length

a[0].length;

a[1].length;

Page 44: 第 2 章    字符串 数组

44

Java 的多维数组不一定是规则的矩阵形式,如

图 5.5 所示。 m 行

1 2

5 6 7

n 列

8

9 10 11

图 5.5 Java 语言的二维数组不一定是矩形如: int [] [] x; x=new int [3] [ ];

x[0] = new int[2]; x[1] = new int[4]; x[2] = new int[3];

Page 45: 第 2 章    字符串 数组

45

x[0][ ]

图 5.6 Java 中的二维数组可以看成是多个一维数组

x[0][0] x[0][1] x[0][2]

x[1][ ] x[1][0] x[1][1]

nullx[1][ ]

int x[ ][ ]

Page 46: 第 2 章    字符串 数组

46

x x[0]

x[1]

x[2]

x[0][0]

x[0][1]

x[1][0]

x[1][1]

x[1][2]

x[1][3]

x[2][0]

x[2][1]

x[2][2]

x.length

x[0].length

x[1].length

int [] [] x;x=new int[3][];

x[0]=new int[2];

x[1]=new int[4];

x[2]=new int[3];

Page 47: 第 2 章    字符串 数组

47

二维数组赋初值:数据类型 数组名 [ ][ ]={{第 1 行初值 } , {第 2 行初值 } ,

{ ……} , {第 n+1 行初值 } } ;

int a[][] = { {1,2,3} , {4,5,6} } ;

int a[][] = { {1,2} , {4,5,6} } ;

Page 48: 第 2 章    字符串 数组

48

练习int a[2];a[2]=3;

int a[3]={1,2,3}; int [] x=new int[3];x[1] = 9;x.length ?

int [][] x;x=new int[2][3];x[0][0]=1;x[0][1]=2;x.length ?

int [][] x;x=new int[2][ ];x[1][0]=8;

int [][] x={{1},{2,3},{4,5,6};x[2][2] ?x[1].length

Page 49: 第 2 章    字符串 数组

49

例 4计算并输出杨辉三角形。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1

[][] data d[i][j] = d[i-1] [j-1] + d[i-1][j]

Page 50: 第 2 章    字符串 数组

50

例 4计算并输出杨辉三角形。public class app5_4{ public static void main(String args[ ]) { int i,j; int Level=7; int iaYong[ ][ ] =new int[Level][]; for (i=0;i<iaYong.length;i++ ) iaYong[i]=new int [i+1]; iaYong[0][0]=1; for (i=1;i<iaYong.length;i++){ iaYong[i][0]=1; for (j=1;j< iaYong[i].length-1;j++) iaYong[i][j]=iaYong[i-1][j-1]+iaYong[i-1][j]; iaYong[i][ iaYong[i].length-1]=1; } //显示出杨辉三角形 for(i=0;i< iaYong.length;i++){ for(j=0;j< iaYong[i].length;j++) System.out.print(iaYong[i][j]+” ”); System.out.println(); } } }

Page 51: 第 2 章    字符串 数组

51

2.7.4.2 三维以上的多维数组

要想提高数组的维数,只要在声明数组的时候将下标与中括号再加一组即可,所以三维数组的声明为 int a[][][]; ,而四维数组为 int a[][][][]; ,依次类推。

Page 52: 第 2 章    字符串 数组

52

1 完成两个矩阵相乘,结果用数组返回。

1 2 3 2 3 5

2 45 61 7

=15 3724 61

Page 53: 第 2 章    字符串 数组

53

int a[][] = {{1,2,3},{2,3,5} };int [][]b = {{2,4},{5,6},{1,7} };

int [][]c = new int[2][2];for(int k=0;k<2;k++){

for (int i=0;i<2;i++){ c[k][i] =0;

for (int j=0;j<3;j++){ c[k][i] = c[k][i] + a[k][j] * b[j][i];

} }

} for(int i=0;i<2;i++){ for (int j=0;j<2;j++)

System.out.print( c[i][j]+" " ); System.out.println(); }

Page 54: 第 2 章    字符串 数组

54

//p89-3 三阶矩阵对角线之和

int [][] d = {{1,2,3},{4,5,6},{7,8,9} }; int sum=0; for (int i=0;i<3;i++){ for(int j=0;j<3;j++){ if (i==j || i+j==2 ) sum += d[i][j]; } } System.out.println( sum);

1 2 3 4 5 6 7 8 9

Page 55: 第 2 章    字符串 数组

55

P88/4 4*5矩阵 int d[][] = new int [4][5]; for(int i=0;i<4;i++) for(int j=0;j<5;j++) d[i][j]= (int)( Math.random()*100 );

int min; //最小值int row=0 , col=0 ; // 行,列 min = d[0][0];

for(int i=0;i<4;i++) for(int j=0;j<5;j++) if (min>d[i][j] ) { min = d[i][j];row=i;col=j; } System.out.println("min="+min+" row/col:"+row+","+

col);

Page 56: 第 2 章    字符串 数组

56

p88/4效率较低 int d[][] = new int [4][5]; for(int i=0;i<4;i++) for(int j=0;j<5;j++) d[i][j]= (int)( Math.random()*100 ); int min; //最小值 int row=0 , col=0 ; // 行,列 min = d[0][0]; for(int i=0;i<4;i++) for(int j=0;j<5;j++) if (min>d[i][j] ) min = d[i][j]; for(int i=0;i<4;i++) for(int j=0;j<5;j++) if (min==d[i][j] ) {row=i;col=j;} System.out.println("min="+min+" row/col:"+row+","+col);

Page 57: 第 2 章    字符串 数组

57

错误 int d[][] = {{1,2,3,4},{5,6,7,8,}, {9,10,11,12},{13,14,15,16} }; for(int i=0,j=0; i<3 && j<4;i++,j++) System.out.println( d[i][j] );

Page 58: 第 2 章    字符串 数组

58

//p89—5 8个随机数,排序 int n=8 , temp;int d[]= new int[n] ;for (int i=0;i<n;i++) d[i] = (int) (Math.random()*100) ; for (int i=0;i<n;i++){ for (int j=i;j<n;j++){ if (d[i]>d[j] ) temp= d[i]; d[i]=d[j]; d[j]=temp; } }for (int i=0;i<n;i++) System.out.print(d[i]+" ");

Page 59: 第 2 章    字符串 数组

59

P89/7class app_7 { public static void main( String args[] ){ boolean b; b = args[0].equals( args[1] ) ; System.out.println( b) ; }}

Page 60: 第 2 章    字符串 数组

60

2.7.4 数组的常用操作 包: java.util.Arrays; 1 .数组排序

public static void sort(X [] a ); 2 .查找指定元素

public static int binarySearch(X[ ] a,X key) 3 .比较数组中的元素

boolean equals(X [], Y [] );

Page 61: 第 2 章    字符串 数组

61

import java.util.Arrays; //2-10 p58public class Sample2_10 {

public static void main(String[] args) {int[] a = { 2, 1, 7, 5, 3, 9, 6, 8, 4, 34, 78, 24, 0 };int[] b = new int[a.length];System.arraycopy(a, 0, b, 0, a.length); // 将数组 a拷贝 b

System.out.print("排序前: "); // 打印排序前数组

for (int i : a) {System.out.print(i + " ");

}Arrays.sort(a); // 调用 sort 方法进行排序Arrays.sort(b, 0, 5);System.out.print("\n全部排序后: "); // 打印排序后数组for (int i : a) {

System.out.print(i + " "); }System.out.print("\n部分排序后: ");for (int i : b) {

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

Page 62: 第 2 章    字符串 数组

62

import java.util.Arrays; public class Sample2_11 { public static void main(String[] args) { // 创建数组

int[] a = { 1, 3, 4, 5, 7, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25 }; // 搜索指定的值 int find = Arrays.binarySearch(a, 4);

// 打印搜索结果System.out.println("整个数组中 4 的位置 :" + find);

}}

Page 63: 第 2 章    字符串 数组

63

import java.util.Arrays;public class Sample2_12 {

public static void main(String[] args) {// 创建数组int[] pra1 = { 1, 3, 4, 5, 7, 8, 9, 12, 13, 15, 19, 21, 23, 24,

25 };int[] pra2 = { 1, 7, 4, 5, 7, 8, 9, 12, 13, 15, 19, 21, 23, 24,

25 };// 比较两个数组boolean flag = Arrays.equals(pra1, pra2);// 打印比较结果System.out.println("两个数组的比较结果 :" +

((flag) ? " 相等 " : " 不相等 "));}

}