1、定义一个6行6列的二维整型数组,输出该二维数组中的每行和每列的最大值、最小值、和平均值。(知识点:数组的创建、初始化和元素访问)
要求:(1)数组元素的值随机产生,大小为20值99之间;
(2)输出结果按下面表格的形式输出。每行,每列后面输出和、平均值、最大值和最小值,其中平均值保留小数点1位。
98 |
44 |
55 |
64 |
84 |
27 |
| |
sum |
avg |
min |
max |
67 |
53 |
75 |
91 |
74 |
64 |
| |
|
|
|
|
67 |
64 |
83 |
62 |
39 |
27 |
| |
|
|
|
|
81 |
45 |
26 |
98 |
24 |
55 |
| |
|
|
|
|
56 |
34 |
64 |
60 |
97 |
32 |
| |
|
|
|
|
66 |
39 |
28 |
22 |
77 |
98 |
| |
|
|
|
|
-------------------------------- |
|
|
|
|
|
|||||
sum |
|
|
|
|
|
|
|
|
|
|
avg |
|
|
|
|
|
|
|
|
|
|
min |
|
|
|
|
|
|
|
|
|
|
max |
|
|
|
|
|
|
|
|
|
|

package Exp02_01_20170566134; import java.util.Scanner; public class Exp1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int r = 0; int Xsum[] = new int[6]; int Xavg[] = new int[6]; int Xmin[] = new int[6]; int Xmax[] = new int[6]; int Ysum[] = new int[6]; int Yavg[] = new int[6]; int Ymin[] = new int[6]; int Ymax[] = new int[6]; int arr[][] =new int[6][6]; for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ while(true){ r = (int)(Math.random()*100); if (r > 20) { break; } } arr[i][j] = r; } } for(int k=0;k<arr.length;k++){ //为X最大值和最最小值设置初始值 Xmin[k]=arr[k][0]; Xmax[k]=arr[k][0]; } for(int k=0;k<arr.length;k++){ //为Y最大值和最最小值设置初始值 Ymin[k]=arr[0][k]; Ymax[k]=arr[0][k]; } for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ Xsum[i]+=arr[i][j]; Xavg[i]+=arr[i][j]; if(Xmin[i]>arr[i][j]){ //求最小值 Xmin[i] = arr[i][j]; } if(Xmax[i]<arr[i][j]){ //求最大值 Xmax[i] = arr[i][j]; } Ysum[i]+=arr[j][i]; Yavg[i]+=arr[j][i]; if(Ymin[i]>arr[j][i]){ //求最小值 Ymin[i] = arr[j][i]; } if(Ymax[i]<arr[j][i]){ //求最大值 Ymax[i] = arr[j][i]; } System.out.print(arr[i][j]+"\t"); } System.out.print(Xsum[i]+"\t");//数值总和 System.out.print((float)(Math.round(Xsum[i]*10/arr[i].length))/10+"\t");//平均值保留一位小数 System.out.print(Xmin[i]+"\t"); //最大值 System.out.print(Xmax[i]+"\t"); //最小值 System.out.println(); } System.out.println(); for(int n=0;n<arr.length;n++){ System.out.print(Ysum[n]+"\t");//数值总和 } System.out.println(); for(int n=0;n<arr.length;n++){ System.out.print((float)(Math.round(Ysum[n]*10/arr[n].length))/10+"\t");//平均值保留一位小数 } System.out.println(); for(int n=0;n<arr.length;n++){ System.out.print(Ymin[n]+"\t"); //最大值 } System.out.println(); for(int n=0;n<arr.length;n++){ System.out.print(Ymax[n]+"\t"); //最小值 } } } /* * 测试数据 2 1 3 4 5 6 1 2 3 4 6 5 2 1 3 4 5 6 2 3 3 4 5 6 6 8 3 4 2 10 5 2 3 6 2 8 */
2、有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。 (知识点:数组定义和创建、数组遍历、数组元素访问)
例如 1 2 3 4 5 6 7 移动4个就变成4 5 6 7 1 2 3
要求:(1)n和m的值由用户输入;
(2)每个元素的值由用户输入;
(3)利用Scanner类完成数值的输入。
Scanner input = new Scanner(System.in);
System.out.println(“请输入数组元素的个数”);
int size = input.nextInt();

package Exp02_02_20170566134; import java.util.Scanner; public class Exp2 { public static void main(String[] args) { // TODO Auto-generated method stub int temp; Scanner input = new Scanner(System.in); System.out.println("请输入数组元素的个数"); int size = input.nextInt(); //数组个数 System.out.println("请输入移动位数"); int m = input.nextInt()-1; //移动m个数 int arr[] = new int[size]; //创建数组 System.out.println("请输入数组"); for(int i=0;i<size;i++){ arr[i] = input.nextInt(); } int result[] = new int[size]; //创建数组 int k = 0; for(int j=m;j<size;j++,k++){ result[k] = arr[j]; } for(int j=0;j<m;j++,k++){ result[k] = arr[j]; } for(int i=0;i<size;i++){ System.out.print(result[i]); } } }
3、有2个多维数组分别是 2 3 4 和 1 5 2 8
4 6 8 5 9 10 -3
2 7 -5 -18
按照如下方式进行运算。生成一个2行4列的数组。
此数组的第1行1列是2*1+3*5+4*2
第1行2列是2*5+3*9+4*7 第2行1列是4*1+6*5+8*2 依次类推。(知识点:多维数组定义和创建、数组遍历、数组元素访问)

package Exp02_03_20170566134; import java.util.Scanner; public class Exp3 { public static void main(String[] args) { // TODO Auto-generated method stub double[][] arr1 = {{2,3,4},{4,6,8}}; double[][] arr2 = {{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}}; double [][] resultMatrix = new double[arr1.length][arr2[0].length]; for (int i = 0 ; i < resultMatrix.length ; i++ ){ for(int j = 0 ; j < resultMatrix[0].length ; j++ ){//正好为矩阵大小,保证了每个元素都被赋值 for (int num = 0 ; num <= arr1.length ; num++){ resultMatrix[i][j] = resultMatrix[i][j] + arr1[i][num]*arr2[num][j]; } } } for (int i = 0 ; i < resultMatrix.length ; i++ ){ for(int j = 0 ; j < resultMatrix[0].length ; j++ ){//正好为矩阵大小,保证了每个元素都被赋值 System.out.print(resultMatrix[i][j] + "\t"); } System.out.println(); } } }
4、编写一个Java程序,完成以下功能: (知识点:String创建和String常用方法的使用,注意查看Java doc API)
(1)声明一个名为school的String对象,内容是
“My school is Xuzhou Institute Of Technology”
(2)打印字符串的长度;
(3)打印字符串的第一个字符和最后一个字符;
(4)打印字符串的第一个单词和最后一个单词;
(5)打印”Xuzhou”在该字符串的起始位置(从0开始编号的位置);
(6)将该字符串转为大写字母输出

package Exp02_04_20170566134; public class Exp4 { public static void main(String[] args) { // TODO Auto-generated method stub String school = new String("My school is Xuzhou Institute Of Technology"); System.out.println("字符串的长度为:"+school.length()); System.out.println("字符串的首字母和尾字母:"+school.charAt(0)+" "+school.charAt(school.length()-1)); String[] c = school.split(" "); //根据空格分割字符串 System.out.println("字符串首个单词和最后一个单词为:"+c[0]+"\t"+c[c.length-1]); System.out.println("字符串xuzhou的位置:"+school.indexOf("Xuzhou")); System.out.println("字符串转换成大写后:"+school.toUpperCase()); } }
5、编写一个Java程序,完成以下功能: (知识点:StringBuffer创建和StringBuffer常用方法的使用,注意查看Java doc API)
Java和 JavaScript 虽有都有Java四个字,但它们是完完全全不同的两种东西,Java是由Sun 公司于1995年5月推出的,而JavaScript 是于1995年由Netscape公司设计实现而成的,由于Netscape公司与Sun公司合作,Netscape高层希望它看上去能够像Java,因此取名为JavaScript。
(1)请从上面一段文字中,找出所有名称为Java的字符串并统计该字符串出现的次数,注意不要统计名称为“JavaScript”中的Java字符串。
(2)在该段文字的后面追加一段文字:
Sun公司已被Oracle公司收购。

package Exp02_05_20170566134; import java.util.Scanner; public class Exp5 { public static void main(String[] args) { // TODO Auto-generated method stub String str = new String("Java和 JavaScript 虽有都有Java四个字,但它们是完完全全不同的两种东西,Java是由Sun 公司于1995年5月推出的,而JavaScript 是于1995年由Netscape公司设计实现而成的,由于Netscape公司与Sun公司合作,Netscape高层希望它看上去能够像Java,因此取名为JavaScript。"); int javalen = 0; int javaScriptlen = 0; int StartIndex = 0; while (str.indexOf("Java", StartIndex) >= 0) { StartIndex = str.indexOf("Java", StartIndex); StartIndex += "Java".length(); javalen++; } StartIndex = 0; while (str.indexOf("JavaScript", StartIndex) >= 0) { StartIndex = str.indexOf("JavaScript", StartIndex); StartIndex += "JavaScript".length(); javaScriptlen++; } System.out.println(javalen-javaScriptlen); StringBuffer stradd = new StringBuffer("Java和 JavaScript 虽有都有Java四个字,但它们是完完全全不同的两种东西," + "Java是由Sun\n公司于1995年5月推出的,而JavaScript 是于1995年由Netscape公司设计实现而成的," + "\n由于Netscape公司与Sun公司合作,Netscape高层希望它看上去能够像Java,因此取名为\nJavaScript。"); System.out.println(stradd.append("Sun公司已被Oracle公司收购。")); } }
6、(选做题)编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。
知识点:String中常用方法、Java中英文字节数
提示:通常说的一个字符占两个字节是指汉字,英文字母是一个字节
String s = “我ABC汉DEF”
(1)先将s转为字符数组 char c[] = s.toCharArray()
(2)判断每个字符是英文字符还是中文字符,思路是看这个字符所占字节的长度
String.valueOf(c).getBytes().length

import java.util.Scanner; public class thirds { public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub String str = "1234请输入字符串计算机基础语言1234"; int cut; Scanner sc = new Scanner(System.in); System.out.println("请输入分割字节:"); cut = sc.nextInt(); int times = str.getBytes("GBK").length/cut; int n=0,a=0,b=0; try { for (int i = 0; i < times-1; i++) { int num = trimGBK(str.getBytes("GBK"), n,n+cut); n = n+cut; //System.out.println("--"+num); b = b+num; System.out.println(str.substring(a,b)); if(str.substring(a,b).getBytes("GBK").length<cut){ //System.out.println("tiaoguo"); a=a+1; b=b+1; if (!(str.getBytes("GBK")[b]<0)) { System.out.println("a"); } } a=a+num; } System.out.println(str.substring(a,str.length())); } catch (Exception e) { // TODO: handle exception } } //判断一个字节数组里面有没有汉字 public static int trimGBK(byte[] buf,int a,int b) { int num = 0; boolean bChineseFirstHalf = false; for(int i=a;i<b;i++) { //一个字节如果小于0那么这个字符肯定就是存储汉字的一半了 if(buf[i]<0&&!bChineseFirstHalf) { //所以需要把汉字给修改为true,因为这是半个汉字所以num不能加1 //当下一次循环过来的时候,因为bChineseFirstHalf = true; //既然前面的是汉字的前半部分,那么这次循环到的肯定是汉字的后 //半部分,所以这个时候num++而且这个汉字已经过去了,因此 //要修改bChineseFirstHalf = false; bChineseFirstHalf = true; } else { num++; bChineseFirstHalf = false; } } return num; } }
7、(选做题)金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
知识点:String中常用的方法

import java.util.Scanner; public class Exp7 { public static void main(String[] args) { // TODO Auto-generated method stub char ch[] = {'零','一','二','三','四','五','六','七','八','九','十'}; char ins[] = {'元','拾','百','千','万'}; Scanner sc =new Scanner(System.in); String str; str = sc.next().replace('¥', ' ').trim();//先去把¥符号换成空格,在把两边空格去掉,在转换成字符数组 String aq = ""; if (str.length()==4) { aq +=ch[Integer.valueOf(str)/1000]; aq +=ins[str.length()-1]; if (ch[Integer.valueOf(str)%1000/100]!='零') { aq +=ch[Integer.valueOf(str)%1000/100]; aq +=ins[str.length()-2]; }else { aq +=ch[Integer.valueOf(str)%1000/100]; } if (ch[Integer.valueOf(str)%100/10]!='零') { aq +=ch[Integer.valueOf(str)%100/10]; aq +=ins[str.length()-3]; }else{ aq +=ch[Integer.valueOf(str)%100/10]; } if (ch[Integer.valueOf(str)%10]!='零') { aq +=ch[Integer.valueOf(str)%10]; aq +=ins[str.length()-4]; aq = aq.replaceAll("零零", "零"); }else{ aq +=ins[str.length()-4]; aq = aq.replaceAll("零零零", "元"); aq = aq.replaceAll("元元", "元"); aq = aq.replaceAll("零零", "元"); } aq +='整'; } if (str.length()==3) { aq +=ch[Integer.valueOf(str)/100]; aq +=ins[str.length()-1]; if (ch[Integer.valueOf(str)%100/10]!='零') { aq +=ch[Integer.valueOf(str)%100/10]; aq +=ins[str.length()-2]; }else{ aq +=ch[Integer.valueOf(str)%100/10]; } if (ch[Integer.valueOf(str)%10]!='零') { aq +=ch[Integer.valueOf(str)%10]; aq +=ins[str.length()-3]; aq = aq.replaceAll("零零", "零"); }else{ aq +=ins[str.length()-3]; aq = aq.replaceAll("零零零", "元"); aq = aq.replaceAll("元元", "元"); aq = aq.replaceAll("零零", "元"); } aq +='整'; } if (str.length()==2) { aq +=ch[Integer.valueOf(str)/10]; aq +=ins[str.length()-1]; if (ch[Integer.valueOf(str)%10]!='零') { aq +=ch[Integer.valueOf(str)%10]; aq +=ins[str.length()-2]; aq = aq.replaceAll("零零", "零"); }else{ aq +=ins[str.length()-2]; aq = aq.replaceAll("零零零", "元"); aq = aq.replaceAll("元元", "元"); aq = aq.replaceAll("零零", "元"); } aq +='整'; } if (str.length()==1) { aq +=ch[Integer.valueOf(str)]; aq +=ins[str.length()-1]; aq +='整'; } aq = aq.replaceAll("元元", "元"); aq = aq.replaceAll("零元", "元"); System.out.println(aq); } } /* 测试数据 ¥1203 一千二百零三元整 ¥1000 一千元整 ¥1001 一千零一元整 ¥1010 一千零一拾元整 ¥1100 一千一百元整 ¥120 一百二拾元整 ¥102 一百零二元整 ¥100 一百元整 ¥12 一拾二元整 ¥10 一拾元整 ¥8 八元整 * */