java数组与字符串

更新时间:2024-06-13 18:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Ex3:数组和字符串

1、假设s1,s2,s3,s4是四个字符串,其值如下:(25分) String s1=“Welcome to Java” String s2=s1

String s3=new String(“welcome to java”); String s4=“welcome to java” 下面表达式的结果是什么?

(1) s1= =s2; 结果:true (2) s2= =s2; 结果:true (3) s1.equal(s2); 结果:true (4) s2.equal(s3); 结果:false (5) s1.compareTo(s2); 结果:0 (6) s2.compareTo(s3); 结果:-32 (7) s1= =s4; 结果:false (8) s1.charAt(0); 结果:W (9) s1.indexof(?j?); 结果:11 (10) s1.indexof(“to”); 结果:8 (11) s1.lastindexof(?a?); 结果:14 (12) s1.lastindexof(“o”,15); 结果:9 (13) s1.length() 结果:15

(14) s1.substring(5) 结果:me to Java (15) s1.substring(5,11) 结果:me to J (16) s1.startwith(“wel”) 结果:false (17) s1.ednwith(“Java”) 结果:true

(18) s1.toLowerCase() 结果:welcome to java

(19) s1.toUpperCase() 结果:WELCOME TO JAVA (20) “Welcom”.trim() 结果:Welcome

(21) s1.replace(?o?, ?T?) 结果:WelcTme tT Java (22) s1.replaceAll(?o?, ?T?) 结果:WelcTme tT Java (23) s1.replaceFirst(?o?, ?T?) 结果:WelcTme to Java

(24) s1.toCharArray() 结果:char []s1={?W?,?e?,?l?,?c?,?o?,?m?,?e?,? ?,?t?,?o?,

? ?,?J?,?a;,?v?,?a?}

为了创建一个字符串“Welcome to Java”,可能会用到如下所示的语句: String s=”Welcome to Java”; 或者

String s=new String(“Welcome to Java”); 哪个语句更好?为什么?

解:第一个语句。因为字符串使用非常频繁第一种比较简化,而第二种比较繁琐。 2、假设s1和s2是两个字符串,下面哪些语句或表达式是错误的?(9分) (1)String s=new String(“new string”); (2)String s3=s1+s2; (3)String s3=s1-s2; (4)s1==s2; (5)s1>=s2;

(6)s1.compareTo(s2); (7)int i=s1.length(); (8)char c=s1(0);

(9)char c=s1.charAt(s1.length()); 解:(3)(4)(5)(9)是错误的

3、假设s1是“Welcome”而s2是“welcome”为下面的陈述编写代码:(18分) (1) 检查s1和s2是否相等,然后将结果赋值给一个布尔变量isEqual。 isEqual=s1.equalsTo(s2) (2) 检查在忽略大小写的情况下s1和s2是否相等,然后将结果赋值给一个布尔变量

isEqual。

isEqual=s1.equalsTo(s2) (3) 比较s1和s2,然后将结果赋值给一个整型值x。 x=s1.compareTo(s2) (4) 在忽略大小写的情况下比较s1和s2,然后将结果赋值给一个整型值x。 x=s1.compareToIgnoreCase(s2) (5) 检查s1是否有前缀“AAA”,然后将结果赋值给一个布尔变量b。 b=s1.startwith(“AAAl”) (6) 检查s1是否有后缀“AAA”,然后将结果赋值给一个布尔变量b。 b=s1.ednwith(“AAA”) (7) 将s1的长度赋值给一个字符型变量x。 x=String.valueOf(s1.length()) (8) 将s1的第一个字符赋值给一个字符型变量x。 x=s1.charAt(0) (9) 创建一个新字符串s3,它是s1和s2的组合。 new String s3=s1+s2

(10) 创建一个s1的子串,下标从1开始。 String s=s1.substring(1)

(11) 创建一个s1的子串,下标从1到4。 String s=s1.substring(1,4)

(12)创建一个新字符串s3,它将s1转换为小写。 new String s3=s1.toLowerCase() (13)创建一个新字符串s3,它将s1转换为大写。 new String s3=s1.toUpperCase()

(14)创建一个新字符串s3,它将s1的两端空格去掉。 new String s3=s1..trim()

(15)用E替换s1中所有出现字符e的地方,然后将新字符串赋值给s3。 s3=s1.replace(?e?, ?E?)

(16) 将“Welcome to Java and HTML”按空格分隔为一个数组tokens。 String []tokens=“Welcome to Java and HTML”.split() (17)将s1中字符e第一次出现的下标赋值给一个int型变量x。 x=s1.indexof(?e?);

(18)将s1中字符串abc最后一次出现的下标赋值给一个int型变量x。 x=s1.lastIndexof(“abc”);

4、假设给出如下所示的s1和s2:(12分)

StringBuilder s1=new StringBuilder(“Java”); StringBuilder s2=new StringBuilder(“HTML”);

显示执行每条语句之后s1的结果。假定这些表达式都是相互独立的。

(1) s1.append(“is fun”); 结果:Java is fun (2) s1.append(s2); 结果:Java HTML (3) s1.insert(2,“is fun”); 结果:Javis funa (4) s1.insert(1,s2); 结果:JaHTMLva (5) s1.charAt(2); 结果:v (6) s1.length(); 结果:4 (7) s1.deleteCharAt(3); 结果:Jav (8) s1.delete(1,3); 结果:Ja (9) s1.reverse(); 结果:avaJ

(10) s1.replace(1,3,“Computer”); 结果:JComputer (11) s1.subString(1.3); 结果:av (12) s1.subString(2); 结果:va

5、指出下列语句是对还是错?(4分)

(1) 数组中每个元素都有相同的类型。 √ (2) 一旦数组被声明,大小就不能改变。 × (3) 一旦数组被创建,大小就不能改变。 √ (4) 数组中的元素必须是基本数据类型 × 6、下列哪些语句是合法的数组声明?(9分)

(1) int i=new int(30);

(2) double d[]=new double[30]; (3) char[] r=new char(1..30); (4) int i[]=(3,4,3,2);

(5) float f[]={2.3,4.5,6.6}; (6) char[] c=new char();

(7) int[][] array=new in[5][6]; (8) int[] x=new int[]; (9) int[][] y=new int[3][];

解:(2)(7)(9)(5)为合法数组声明

7、声明数组时给数组分配内存吗?什么时候为数组分配内存?下面代码输出的结果是什 么?(9分) int x=30;

int[] numbers=new int[x]; x=60;

System.out.println(“x is ”+x);

System.out.println(“The size of numbers is ” + numbers.length);

解:声明数组时不一定给数组分配内存。在栈中声明了一个数组并开辟了一块空间,此时数组分配了内存。 输出结果是:x is 60

The size of numbers is 30 8、编写语句完成:(14分)

(1)创建一个含10个double值的数组; (2)将5.5赋值给数组中最后一个元素; (3)显示数组前两个元素的和;

(4)编写循环计算数组中所有元素的和; (5)编写循环找出数组的最小值;

(6)随机产生一个下标,然后显示该下标所对应的数组元素;

(7)使用数组初始化语法创建另一个初始值为3.5、5.5、4、25和5.6的数组; 解:

double []arry=new double [10]; arry[9]=5.5;

System.out.println(arry[0]+arry[1]); int sum=0,min=arry[0]; for(int i=0;i<10;i++) sum+=arry[i]; for(int j=1;j<10;j++) if(min

int x=(int)(Math.Random())*arry.length;

System.out.println(“arry[x]=”+arry[x]); double []myArry={3.5,5.5,4,25,5.6};

本文来源:https://www.bwwdw.com/article/bz36.html

Top