练习题
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);
}
}
}