数组、方法思维进阶01

1、给定一个数组,请将这个数组元素反转。★★
反转前:int[] arr1 = {1,3,2,4,5};
反转后: int[] arr2 = {5,4,2,3,1};

答案:

public class HelloWorld {
    public static void main(String []args) {
		int[] arr1 = {1,3,2,4,5};
		int len = arr1.length;
		int[] arr2 = new int[len];
		for(int i=0;i<arr1.length;i++){
				arr2[len-1]=arr1[i];
				len--;
		}
		for(int x : arr2){
			System.out.print(x);
		}
    }
}
2、给定一个二维数组,请将这个二维数组转化成一维数组 ★★
int[][] arr = {
    {1,2,3},
    {4,5,6},
    {7,8}
}
int[] arr = {1,2,3,4,5,6,7,8}

答案:

public class HelloWorld {
    public static void main(String []args) {
        int[][] arr = { { 1 , 2 , 3 } , { 4 , 5 , 6 } , { 7 , 8 } };
		int[] a = new int[8];
		int x = 0;
        for(int[] i : arr ){
            for (int j : i){
                System.out.print(j);
				a[x] = j;
				x++;
            }
        }
		for(int i : a){
		System.out.print(i);
		}
    }
}
3、设计一个方法,传入两个数组,请把两个数组进行合并成一个新数组并返回。★★

答案:

public class HelloWorld {
    public static void main(String []args) {
		int[] arr1 = {1,2,3};
		int[] arr2 = {4,5};
		int[] arr = fun(arr1,arr2);
		for(int i : arr){
			System.out.print(i);
		}
    }
	static int[] fun(int[] a,int[] b){
		int start = a.length;
		int length = a.length+b.length;
		int arr[] = new int[length];
		for(int i = 0 ; i < length ; i++){
			if(i>=start){
				arr[i] =  b[i-start];
			}else{
			arr[i] = a[i];
			}
		}
		return arr;
	}
}
4、设计一个方法,传入一个数组,并传入开始索引start和结束索引end,截取start到end之间的数组元素放入一个新数组中。★★
public static int[] subArray(int[] srcArr,int start,int end) {
......方法体
}
public static void main(String[] args) {
    int[] arr = {1,2,3,4};
    int[] subArr = subArray(arr,1,3);
    System.out.println(subArr) // {2,3}
}

答案:

public class HelloWorld {
	public static int[] subArray(int[] srcArr,int start,int end) {
		int len = end-start;
		int[] arr = new int[len];
		for(int i = 0 ; i < len ; i++ ){
			arr[i] = srcArr[start];
			start++;
		}
  		return arr;
	}
  	public static void main(String[] args) {
      int[] arr = {1,2,3,4};
      int[] subArr = subArray(arr,1,3);
      //System.out.println(subArr); // {2,3}
		for(int i : subArr){
		 System.out.println(i);
		}
 	 }
}
5、设计一个方法,给定一个小写的字符串str,把这个字符串转化成大写的字符串。★★

答案:

public class HelloWorld {
    public static void main(String []args) {
		String str = "csgo";
		int length = str.length();
		char[] c = new char[length];
		for(int i = 0 ; i < length ; i++){
			c[i] = (char)(str.charAt(i) - 32);
		}
		String str1  = new String(c);
		System.out.print(str1);
    }
}
6、设计一个方法,传入两个数组,判断两个数组是否相等(★★)

答案:

public class HelloWorld {
    public static void main(String []args) {
        int arr1[] = {1,2,3};
        int arr2[] = {1,2,3};
        //int arr2[] = {1,2,3,4};
        System.out.println("两个数组是否相等:" + alike(arr1,arr2) );
    }
    static boolean alike(int[] a,int[] b){
        if(a.length != b.length){
            return false;
        }else{
            for(int i = 0 ; i < a.length ; i++ ){
            if(a[i] != b[i]){
                return false;
                }
            }
        }
        return true;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值