当前位置:文档之家› 实验三 数组和字符串

实验三 数组和字符串

实验三数组和字符串一、实验目的1.掌握Java中的数组定义、引用2.掌握向量的基本概念和应用技术3.掌握使用字符串String类处理字符串的方法4.掌握使用字符串StringBuffer类处理字符串的方法5.掌握Date类以及Calendar类的常用方法;二、实验内容1.使用ng.Math类,生成100 个100~999 之间的随机整数,找出他们之中的最大的和最小的,并统计随机产生的大于300 的整数个数。

package exercise;publicclass shiyan3_1 {publicstaticvoid main(String [] args){int count=0;int max=0;int min=Integer.MIN_VALUE;int num[]=newint[100];//声明并创建一个具有100 个元素的整型数组对象num int i;for(i=1;i<=100;i++){num[i-1]=100+(int)(Math.random()*899);System.out.print(num[i-1]+"\t");//随机产生一个100~999 之间的随机整数if(i % 10 == 0) System.out.println();//输出当前产生的随机数,并一行输出10 个数if(num[i-1]>max) max=num[i-1];if(num[i-1]<min) min=num[i-1];//找出最大和最小整数算法if(num[i-1]>300) count++;}System.out.println("最大的随机整数是:"+max);System.out.println("最小的随机整数是:"+min);System.out.println("大于300 的整数个数是:"+count);}}2.求下列二维数组中各行元素之和并查找其值最大的那个行。

package exercise;publicclass shiyan3_2 {publicstaticvoid main(String[] args){int twoDimArray[][] = {{24, 47, 55, 44, 24, 68, 98},{96, 71, 64, 95, 20, 18, 21},{47, 34, 28, 36, 89, 63, 86},{64, 46, 58, 73, 24, 73, 13}};int sum, max, maxRow=0;max = 0;for (int row=0; row<4; row++) //数组的行数{sum = 0;for (int col=0; col<7; col++)//数组的列数sum += twoDimArray[row][col];if(sum>max){maxRow=row;max=sum;}//求得和最大的行及总和}System.out.println("和最大的行是" + maxRow + " 最大值为" + max);}}3.String 类的常用方法。

实验要求:编写一个Java 应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否和某个字符串相同,按字典顺序比较两个字符串的大小关系,检索字符串,创建字符串,将数字型字符串转换为数字,将字符串存放到数组中,用字符数组创建字符串。

package exercise;publicclass shiyan3_3 {publicstaticvoid main(String[] args){String s1=new String("徐州工程学院"),s2=new String("江苏省徐州市");if(s1.equals(s2)) System.out.println("s1 与s2 相同");// 使用equals 方法判断s1 与s2 是否相同else System.out.println("s1 与s2 不相同");String s3=new String("320305************");if(s3.substring(0,6).equals("320305")) System.out.println("江苏省徐州市的身份证");//判断s3 的前缀是否是“320305”String s4=new String("你"),s5=new String("我");if(pareTo(s5)>0) System.out.println("按字典序s4 大于s5");//按着字典序s4 大于s5 的表达式else System.out.println("按字典序s4 小于s5");int position=0;String path="c:\\java\\SY6_1.java";position=stIndexOf("\\");//获取path 中最后出现目录分隔符号的位置 System.out.println("path 中最后出现\\的位置:"+position);String fileName=path.substring(12);//获取path 中“SY6_1.java”子字符串。

System.out.println("path 中含有的文件名:"+fileName);String s6=new String("230"), s7=new String("123.456");int n1=Integer.parseInt(s6);//将s6 转化成int 型数据。

double n2=Double.parseDouble(s7);//将s7 转化成double 型数据。

double m=n1+n2;System.out.println(m);String s8=String.valueOf(m);//String 调用valuOf(int n)方法将m 转化为字符串对象position=s8.indexOf(".");String temp=s8.substring(position+1);System.out.println("数字"+m+"有"+temp.length()+"位小数") ;String s9=new String("ABCDEF");char a[]=newchar[6];//将s8 存放到数组a 中。

for(int i=a.length-1;i>=0;i--)System.out.print(""+a[i]);}}4.比较日期的大小实验要求:编写一个java应用程序,用户从输入对话框输入了两个日期,程序将判断两个日期的大小关系、以及两个日期之间的间隔天数。

package exercise;import java.sql.Date;import java.util.Calendar;import javax.swing.JOptionPane;public class shiyan3_4 {public static void main(String[] args){String str=JOptionPane.showInputDialog("输入第一个日期的年份:");int yearOne=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入该年的月份:");int monthOne=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入该月份的日期:");int dayOne=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入第二个日期的年份:");int yearTwo=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入该年的月份:");int monthTwo=Integer.parseInt(str);str=JOptionPane.showInputDialog("输入该月份的日期:");int dayTwo=Integer.parseInt(str);Calendar calendar=Calendar.getInstance();//初始化日历对象calendar.set(yearOne,monthTwo,dayOne);//将calendar 的时间设置为yearOne 年monthOne 月dayOne 日long timeOne=calendar.getTimeInMillis();//calendar 表示的时间转换成毫秒calendar.set(yearTwo,monthTwo,dayTwo);//将calendar 的时间设置为yearTwo 年monthTwo 月dayTwo 日long timeTwo=calendar.getTimeInMillis();//calendar 表示的时间转换成毫秒。

Date date1=new Date(timeOne);// 用timeOne 做参数构造date1Date date2=new Date(timeTwo);// 用timeTwo 做参数构造date2if(date2.equals(date1)) System.out.println("两个日期的年、月、日完全相同");else if(date2.after(date1)) System.out.println("您输入的第二个日期大于第一个日期");else if(date2.before(date1)) System.out.println("您输入的第二个日期小于第一个日期");longdays=Math.abs((date1.getTime()-date2.getTime())/(24*3600*1000));//计算两个日期相隔天数System.out.println(yearOne+"年"+monthOne+"月"+dayOne+"日和"+yearTwo+"年"+monthTwo+"月"+dayTwo+"相隔"+days+"天");}}5.有NUMBER 个马拉松运动员,对这些运动员的成绩进行排名次,NUMBER 和运动员的成绩由用户输入,编写程序,输出所有运动员的成绩和名次。

相关主题