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 八元整 * */