练习题
x
package ch1;import java.util.Objects;import java.util.Scanner;
public class a7_1小题库 {
public static void main(String[] args) {
//数组之和 int arr[] = {1,2,3,4,5,6}; int sum = 0; for (int i = 0; i < arr.length; i++) { sum+=arr[i]; } System.out.println(sum);
//-------------------------------------------------------------
//定义一个比较数组内容是否相同的方法并调用输出 public static void main(String[] args) { int[] arr = {11, 22, 33, 44, 55}; int[] arr2 = {11, 22, 33, 44, 55}; boolean flag = compare(arr, arr2); System.out.println(flag); } public static boolean compare(int[] arr, int[] arr2) { if (arr.length != arr2.length) { return false; } for (int x = 0; x < arr.length; x++) { if (arr[x] != arr2[x]) { return false; } } return true; }
//-------------------------------------------------------------
//用户输入一个数,查找数组中(整型数据)是否有这个元素 int[] arr = {1, 2, 3, 4, 5}; Scanner sc = new Scanner(System.in); System.out.println("请输入一个1~5的整数:(词库包含1、2、3、4、5)"); int num = sc.nextInt(); for (int x = 0; x < arr.length; x++) { if (arr[x] == num) { System.out.println("已存在"); break; }else if(x==arr.length-1){ System.out.println("不存在"); break; } }
//第二种写法 do{ int[] arr = {1, 2, 3, 4, 5}; Scanner sc = new Scanner(System.in); System.out.println("请输入一个要查找的整数:(词库包含1、2、3、4、5)"); if (sc.hasNextInt()) { int num = sc.nextInt(); for (int x = 0; x < arr.length; x++) { if (arr[x] == num) { System.out.println("已存在"); return; } else if (x == arr.length - 1) { System.out.println("不存在"); return; } } } else { System.out.println("输入错误"); sc.next(); } } while (true);
//第三种写法 int[] arr = {1, 2, 3, 4, 5}; Scanner sc = new Scanner(System.in); System.out.println("请输入一个要查找的整数:(词库包含1、2、3、4、5)"); int num = 0; try { num = sc.nextInt(); } catch (InputMismatchException e) { System.out.println("输出格式有误!!!"); sc.next(); } for (int x = 0; x < arr.length; x++) { if (arr[x] == num) { System.out.println("已存在"); break; } else if (x == arr.length-1) { System.out.println("不存在"); } }
//-------------------------------------------------------------
//用户输入一个数,查找数组中(字符串数据)是否有这个元素 String[] arr = {"你","我","他","她","它"}; Scanner sc = new Scanner(System.in); System.out.println("请输入一个人称代词:(词库包含:你、我、他、她、它)"); String s = sc.next(); for (int i = 0; i < arr.length; i++) { if (Objects.equals(arr[i],s)) { System.out.println("已存在"); break; }else{ System.out.println("不存在"); break; } }
//-------------------------------------------------------------
//数组中元素的最值 int[] val = {2,45,21,8,57,9,10,34,76,35,47}; int max = val[0]; for(int m=1; m<val.length; m++){ if(val[m] > max){ max = val[m]; } } System.out.println("max:" + max);
//-------------------------------------------------------------
//仅用循环遍历输出数组中的每一个元素 int[] gkh = {12,21,13,31,14,41,15,51}; for(int n=0; n<gkh.length;n++){ System.out.println(gkh[n]); }
//-------------------------------------------------------------
//定义一个数组并静态初始化 int[] cfg = {1,2,3,4,5};
//-------------------------------------------------------------
//写一个拼接字符串遍历Int型数组的方法,调用输出在控制台,要求输出在一行 public static void main(String[] args) { int[] a = {1,2,3,4,5}; fun(a); } public static void fun(int[] arr){ System.out.print("["); for(int x = 0; x < arr.length; x++){ if(x == arr.length-1){ System.out.print(arr[x]); } else{ System.out.print(arr[x] + ","); } } System.out.println("]"); }
//-------------------------------------------------------------
//写一个拼接字符串遍历String型数组的方法,调用输出在控制台,要求输出在一行 public static void main(String[] args) { String[] a = {"s","d","f","g"}; fun(a); } public static void fun(String[] arr){ System.out.print("["); for(int x = 0; x < arr.length; x++){ if(x == arr.length-1){ System.out.print(arr[x]); } else{ System.out.print(arr[x] + ","); } } System.out.println("]"); }
//-------------------------------------------------------------
//定义一个获取数组中最大值的方法并调用输出 public static void main(String[] args) { int[] obj={1,2,3,4,5,6,6,6,6,7,8,9,7}; method(obj); } private static void method(int[] arr){ int max = arr[0]; for (int i = 0; i < arr.length; i++) { if(max<arr[i]){ max = arr[i]; } } System.out.println(max); }
//-------------------------------------------------------------
//数组求和且要求参与求和的元素个位和十位不能是7且只能是偶数 int[] arr = {68, 27, 95, 88, 171, 996, 51, 210}; int sum = 0; for(int x=0; x<arr.length; x++){ if(arr[x]%10!=7 && arr[x]/10%10!=7 && arr[x]%2==0){ sum += arr[x]; } } System.out.println("sum:" + sum);
//-------------------------------------------------------------
//控制台输入5个整数,用回车键隔开,把这5个数放到数组里并+1,输出数组 int[] obj = new int[5]; Scanner sc = new Scanner(System.in); System.out.println("请输入5个数字,按回车键输入下一个数字:"); if(sc.hasNextInt()){ for (int i = 0; i < obj.length; i++) { int s = sc.nextInt(); obj[i]=s; obj[i]+=1; } System.out.println("----------------------------"); System.out.println(Arrays.toString(obj)); sc.close(); }
//-------------------------------------------------------------
//截取给定字符串的某一段字符,输出截取的字符 String str = new String("hello wrold"); System.out.print("从第4位截取到字符串末尾:"); System.out.println(str.substring(4));
System.out.print("从第4位截取到第10位,不包含第10位:"); System.out.println(str.substring(4,10));
//-------------------------------------------------------------
//根据逗号截取字符串中的字符,把截取后的字符放到数组里,输出数组 String s = "a,b,c,d,e,f,g"; String[] arr = s.split(","); System.out.println(Arrays.toString(arr));
//-------------------------------------------------------------
//控制台录入若干逗号隔开的字符串,把字符串放到数组里,输出数组 Scanner sc = new Scanner(System.in); System.out.println("请输入若干字符串,用逗号隔开:"); String s = sc.next(); String[] str = s.split(","); System.out.println(Arrays.toString(str));
//-------------------------------------------------------------
//控制台录入若干逗号隔开的整数,把整数放到数组里并加1,输出数组 Scanner sc = new Scanner(System.in); System.out.println("请输入若干数字,用逗号隔开:"); String s = sc.next(); String[] str = s.split(","); int[] arr = new int[str.length]; for(int i=0; i<str.length; i++) { arr[i] = Integer.parseInt(str[i]); arr[i]+=1; } System.out.println("每个数字+1为:"+Arrays.toString(arr));
//-------------------------------------------------------------
//翻转Int数组,输出翻转后的数组 int[] arr = {1, 2, 3, 4, 5, 6, 7}; for (int start = 0, end = arr.length - 1; start <= end; start++, end--) { int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } System.out.println(Arrays.toString(arr));
//-------------------------------------------------------------
//翻转String数组,输出翻转后的数组 String[] arr = {"a","b","c","d"}; for (int start = 0, end = arr.length - 1; start <= end; start++, end--) { String temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } System.out.println(Arrays.toString(arr));
//-------------------------------------------------------------
//翻转控制台输入的String字符串,输出翻转后的字符串 Scanner sc = new Scanner(System.in); System.out.println("请输入若干字符串:"); String s = sc.nextLine(); String str = ""; for(int i=s.length()-1; i>=0; i--){ str += s.charAt(i); } System.out.println(str);
//-------------------------------------------------------------
//使用*图案输出指定行数的正金字塔 int n = 5; for(int i=1; i<=n; i++) { for(int j=1; j<=n-i; j++) { System.out.print(" "); } for(int j=1; j<=2*i-1; j++) { System.out.print("*"); } System.out.println(); }
//使用*图案输出指定行数的倒金字塔 int n = 5; for(int i = 0; i<=n; i++) { for(int j=0; j<i; j++) { System.out.print(" "); } for(int j=1; j<2*(n-i); j++) { System.out.print("*"); } System.out.println(" "); }
//使用*图案输出指定行数的正直角三角形 int n = 5; for (int i=0; i<n; i++) { for (int j=0; j<=i; j++) { System.out.print("*"); } System.out.println(" "); }
//使用*图案输出指定行数的倒直角三角形 int n = 5; for (int i=n; i>0; i--) { for (int j=0; j<i; j++) { System.out.print("*"); } System.out.println(" "); }
//-------------------------------------------------------------
//输出指定行数的正乘法表(左大) int n =9; for(int i=1,k=n; i<=n; i++,k--){ for(int j=1,k2=n; j<=i; j++,k2--){ System.out.print(k2+"*"+k+"="+k2*k+"\t"); } System.out.println(); }
//输出指定行数的正乘法表(左小) int n =9; for(int i=1; i<=n; i++){ for(int j=1; j<=i; j++){ System.out.print(j+"*"+i+"="+j*i+"\t"); } System.out.println(); }
//输出指定行数的倒乘法表(左小) int n=9; for(int i=n;i>=1;i--){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j+"\t"); } System.out.println(); }
//输出指定行数的倒乘法表(左大) int n = 9; for(int i=1; i<=n; i++){ for(int j=n; j>=i; j--){ System.out.print(j+"*"+i+"="+j*i+"\t"); } System.out.println(); }
//-------------------------------------------------------------
//控制台录入一个整数,计算这个整数的阶乘并输出 Scanner sc =new Scanner(System.in); System.out.println("请输入一个整数求阶乘:"); int n = sc.nextInt(); BigInteger bi =BigInteger.ONE; for(int i=1; i<=n; i++) bi = bi.multiply(BigInteger.valueOf(i)); System.out.println(bi);
//-------------------------------------------------------------
//评委打分案例 public static void main(String[] args) { int[] arr = new int[5]; Scanner sc = new Scanner(System.in); for (int i = 0; i < arr.length; i++) { System.out.println("请第" + (i + 1) + "个评委打出评分:"); arr[i] = sc.nextInt(); } int max = getMax(arr); int min = getMin(arr); int sum = getSum(arr); int avg = (sum - max - min) / (arr.length - 2); System.out.println("评委平均分为:" + avg); } public static int getMax(int[] arr) { int max = arr[0]; for (int i = 0; i < arr.length; i++) { if (arr[i] > max) { max = arr[i]; } } return max; } public static int getMin(int[] arr) { int min = arr[0]; for (int i = 0; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } } return min; } public static int getSum(int[] arr) { int sum = 0; for (int i = 0; i < arr.length; i++) { sum += arr[i]; } return sum; }
//-------------------------------------------------------------
//在控制台输入若干字符,统计字符出现的次数 Scanner sc = new Scanner((System.in)); System.out.println("请输入若干字符串:"); String s = sc.nextLine(); int bigE = 0; int smallE = 0; int number = 0; for(int i=0; i<s.length(); i++){ char ch = s.charAt(i); if(ch>='A' && ch<='Z'){ bigE++; } else if(ch>='a' &&ch<='z'){ smallE++; } else if(ch>'0' && ch<='9'){ number++; } } System.out.println("大写字母: " + bigE); System.out.println("小写字母: " + smallE); System.out.println("数字: " + number);
//-------------------------------------------------------------
//向StringBuilder类型的字符串里添加多个字符,并翻转,输出翻转后的字符 StringBuilder sbd = new StringBuilder(); System.out.println(sbd.append("a").append("b").append("c").reverse());
//-------------------------------------------------------------
//控制台输入String类型的字符串转为StringBuilder类型,并翻转,输出翻转后的字符 Scanner sc = new Scanner(System.in); System.out.println("请输入若干字符串:"); String s = sc.nextLine(); System.out.println(new StringBuilder(s).reverse());
//-------------------------------------------------------------
//把StringBuilder类型的字符串转为String类型的字符串 StringBuilder sbd = new StringBuilder(); String s = sbd.toString();
//-------------------------------------------------------------
//比较两个文件内容是否相同 try { Scanner readr = new Scanner(System.in); //输入格式举例: c:\hello\file1.txt System.out.println("输入第一个文件的绝对路径:"); String file1 = readr.next(); System.out.println("输入第二个文件的绝对路径:"); String file2 = readr.next(); FileReader inOne1 = new FileReader(file1); BufferedReader inTwo1 = new BufferedReader(inOne1); String s1 = null; int i = 0;//行数 boolean b = true;//检察是行数 FileReader inOne2 = new FileReader(file2); BufferedReader inTwo2 = new BufferedReader(inOne2); String s2 = null; //文件内容对比 while ((s1 = inTwo1.readLine()) != null) { i++; while ((s2 = inTwo2.readLine()) != null) { if (s1.equals(s2) != true) { System.out.println("----------------------------"); System.out.println("运行成功: 第" + i + "行的" + "内容不一样"); b = false; } break; } } if (b) { System.out.println("----------------------------"); System.out.println("运行成功: 文件内容一样"); } } catch (IOException e) { System.out.println(e); } }}