A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.分析以下需求,并用代码实现:
        (1)模拟Arrays.toString(int[] arr);方法,自己封装一个public static String toString(int[] arr);
        (2)如果int类型数组arr为null,toString方法返回字符串"null"
        (3)如果int类型数组arr长度为0,toString方法返回字符串"[]"
        (4)如果int类型数组arr的内容为{1,2,3,4,5},toString方法返回字符串"[1, 2, 3, 4, 5]"
package com.heima.test;

import java.util.Arrays;

public class Test01 {
       
        public static void main(String[] args) {
                int[] arr = {33,22,11,44,66,55};
                //String s=new String();
                System.out.println(String.toString(arr));
        }
       

public static String toString(int[] a) {
    if (a == null)
        return "null";
    int iMax = a.length - 1;
    if (iMax == -1)
        return "[]";

    StringBuilder b = new StringBuilder();
    b.append('[');
    for (int i = 0;i<a.length ; i++) {
            if (i == iMax ){
                    b.append(a[i]).append("]");       
                }else {
                        b.append(a[i]).append(", ");       
                }
     
    }
    return b.toString();
}
}       

9 个回复

倒序浏览
package com.heima.test;

public class Test02 {
/*        2.分析以下需求,并用代码实现:
        (1)有一个数字字符串"25 11 -6 20 102 9",数字之间用空格间隔       
        (2)利用冒泡排序对这串数字按照从小到大排序,生成一个数值有序的字符串"-6 9 11 20 25 102"
        (3)提示:用String类提供的split方法(用" "(空格)作为split方法的参数来切割),然后生成对应的数字字符串数组
        */
        /**
         * @param args
         */
        public static void main(String[] args) {
                String s="25 11 -6 20 102 9";
                String[] arr=s.split("\\ ");                                 //通过正则表达式切割字符串
                int[] a=new int[arr.length];
               
                for (int i = 0; i < arr.length; i++) {
                        a[i]=Integer.parseInt(arr[i]);
                        //System.out.print(arr[i]+" ");
                }
                for (int i = 0; i < arr.length - 1; i++) {                               
                        for (int j = 0; j < arr.length - 1 - i; j++) {       
                       
                                if(a[j] > a[j+1]) {
                       
                                         int temp = a[j];
                                         a[j]= a[j+1];
                                         a[j+1] = temp;
                                       
                                }
                        }
                }
                for (int i = 0; i < a.length; i++) {
                        System.out.print(String.valueOf(a[i]) + " ");
                }
        }
       
               
               
        }
回复 使用道具 举报
可以继续更新,谢谢分享
回复 使用道具 举报
分析以下需求,并用代码实现:
        (1)定义数字字符串数组{"010","3223","666","7890987","123123"}
        (2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
        (3)如:010 是对称的,3223 是对称的,123123 不是对称的
回复 使用道具 举报
黑桃AM 发表于 2016-9-14 23:26
分析以下需求,并用代码实现:
        (1)定义数字字符串数组{"010","3223","666","7890987","123123"}
        (2)判断 ...

public class Test02 {
                                public static void main(String[] args) {
                                        //英文单词symmetrical,表示对称的
                                        String[] strs = {"010","3223","666","7890987","123123"};
                                        for (String str : strs) {
                                                boolean b = isSymmString(str);
                                                System.out.println(str+(b==true?" 是":" 不是")+"对称的");                       
                                        }
                                       
                                }
                                //判断数字字符串是否是对称的
                                private static boolean isSymmString(String str) {
                                        char[] arr = str.toCharArray();
                                        for(int start =0,end=arr.length-1;start<=end;start++,end--) {
                                                if(arr[start]!=arr[end]) {
                                                        return false;
                                                }
                                        }
                                        return true;
                                }
                        }
回复 使用道具 举报
需求:键盘录入任意一个年份,判断该年是闰年还是平年
         * Calendar c = Calendar.getInstance();
         *
         * 分析:
         * 1,键盘录入年Scanner
         * 2,创建Calendar c = Calendar.getInstance();
         * 3,通过set方法设置为那一年的3月1日
         * 4,将日向前减去1
         * 5,判断日是多少天,如果是29天返回true否则返回false

public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入年份,判断该年份是闰年还是平年:");
                //int year = sc.nextInt();
               
                String line = sc.nextLine();                                //录入数字字符串
                int year = Integer.parseInt(line);                        //将数字字符串转换成数字
                boolean b = getYear(year);
                System.out.println(b);
        }

        private static boolean getYear(int year) {
                //2,创建Calendar c = Calendar.getInstance();
                Calendar c = Calendar.getInstance();
                //设置为那一年的3月1日
                c.set(year, 2, 1);
                //将日向前减去1
                c.add(Calendar.DAY_OF_MONTH, -1);
                //判断是否是29天
                return c.get(Calendar.DAY_OF_MONTH) == 29;
        }

}
回复 使用道具 举报
package com.heima.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test2 {

        /**
         * * A:案例演示
         * 需求:算一下你来到这个世界多少天?
         * 分析:
         * 1,将生日字符串和今天字符串存在String类型的变量中
         * 2,定义日期格式化对象
         * 3,将日期字符串转换成日期对象
         * 4,通过日期对象后期时间毫秒值
         * 5,将两个时间毫秒值相减除以1000,再除以60,再除以60,再除以24得到天
         * @throws ParseException
         */
        public static void main(String[] args) throws ParseException {
                //1,将生日字符串和今天字符串存在String类型的变量中
                String birthday = "1983年07月08日";
                String today = "2088年6月6日";
                //2,定义日期格式化对象
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
                //3,将日期字符串转换成日期对象
                Date d1 = sdf.parse(birthday);
                Date d2 = sdf.parse(today);
                //4,通过日期对象后期时间毫秒值
                long time = d2.getTime() - d1.getTime();
                //5,将两个时间毫秒值相减除以1000,再除以60,再除以60,再除以24得到天
                System.out.println(time / 1000 / 60 / 60 / 24 );
        }

}
回复 使用道具 举报
优秀,给你点赞
回复 使用道具 举报
很好,都是上课的练习或者作业。。。请继续更新啊
回复 使用道具 举报
谢谢分享~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马