尚学堂编码题答案 第七章 数组

本编码答案为本人个人编辑,仅供参考。如有更优答案或者代码编写规范等问题欢迎读者私信本人或在下方评论处与本人交流。
1. 数组查找操作:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”。
import java.util.Scanner;

public class SearchWord01 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print(“请输入您需要查找的单词:”);
String val=input.nextLine();
input.close();
String result=SearchWord01.searchWord(val);
System.out.println(“查找的结果为:”+result);
}
public static String searchWord(String value) {
String[] arr= {“apple”,”pen”,”banana”,”dog”,”cat”,”desk”,”book”
,”computer”,”mouse”,”iphone”};
for (int i = 0; i < arr.length; i++) {
if(value.equalsIgnoreCase(arr[i])) {//忽略大小的比较
return “Yes”;
}
}
return “No”;
}
}

  1. 获取数组最大值和最小值操作:利用Java的Math类的random()方法,编写函数得到0到n之间的随机数,n是参数。并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。
    提示:使用 int num=(int)(n*Math.random());获取随机数。
    import java.util.Arrays;

public class GetMaxMin02 {
int[] arr = new int[50];

public static void main(String[] args) {
    GetMaxMin02 g = new GetMaxMin02();
    int[] arr = g.getRandom(100);
    g.showInfo(arr);
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));
}

public int[] getRandom(int n) {// 获得随机产生的50个随机数,并将其存储在数组中,返回一个数组
    for (int i = 0; i < arr.length; i++) {
        arr[i] = (int) (n * Math.random());
    }
    return arr;
}

public int getMax(int[] arr) {// 判断数组中的最大值
    int max = arr[0];
    for (int i = 0; i < arr.length; i++) {
        max = max > arr[i] ? max : arr[i];
    }
    return max;
}

public int getMin(int[] arr) {// 判断数组中的最小值
    int min = arr[0];
    for (int i = 0; i < arr.length; i++) {
        min = min < arr[i] ? min : arr[i];
    }
    return min;
}

public int countNum(int[] arr) {// 算出随机数中大于等于60的数有多少个
    int num = 0;
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] >= 60) {
            num++;
        }
    }
    return num;
}

public void showInfo(int[] arr) {// 放一起,一块儿打印
    System.out.println("最大值为:" + this.getMax(arr));
    System.out.println("最小值为:" + this.getMin(arr));
    System.out.println("大于等于60的个数有:" + this.countNum(arr));
}

}
3. 数组逆序操作:定义长度为10的数组,将数组元素对调,并输出对调前后的结果。
思路:把0索引和arr.length-1的元素交换,把1索引和arr.length-2的元素交换…..
只要交换到arr.length/2的时候即可。
import java.util.Arrays;

public class InvertSequence03 {
public static void main(String[] args) {
InvertSequence03 invert = new InvertSequence03();
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {// 给一个长度为10的数组进行赋值
arr[i] = i * 2;
}
System.out.println(Arrays.toString(arr));// 打印未逆序排列前的数组
invert.invert(arr);
System.out.println(Arrays.toString(arr));// 打印逆序后的数组

}

public int[] invert(int[] arr) {
    int temp = arr[0];
    for (int j = 0; j < arr.length >> 1; j++) {// 尾部和头部进行内容的交换
        temp = arr[j];
        arr[j] = arr[arr.length - 1 - j];
        arr[arr.length - 1 - j] = temp;
    }
    return arr;
}

}

猜你喜欢

转载自blog.csdn.net/nihaoya123_/article/details/82119987
今日推荐