做做Java
发布日期:2021-05-07 15:25:37 浏览次数:7 分类:原创文章

本文共 7288 字,大约阅读时间需要 24 分钟。

文章目录


前言

没有前言,练习题大多是蹭的软工专业的室友的><


1、遍历字符串string

蹭的题,非常基础,但是学到了方法charAt():用于返回指定索引处的字符,索引范围为从 0 到 length() - 1。

public class Ergodic {       public static void main(String[] args) {           String s = "abc123";         int l = s.length();        for(int i=0;i < l;i++)        {               System.out.println(s.charAt(i));        }    }}

编程小白同时也在学习C#,所以有些用法一不小心会混淆了,比如:
1.String 数据类型在java中一定要大写S,而string不可以
一开始写的时候就因此一直无法调用出length方法;
2.变量要先定义并且初始化初始化,再用。


2、万年历

通用万年历
给定某年某月某日是星期几,能给出任何一年(12个月)的输出。
该方法以行为单位,输出各个月的相应行的数据。控制过程比较复杂,要求把每月需控制的参数用结构体定义。结构体中的属性大致包含:每月天数、一号周几。
int daysOfMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
实验步骤:
1.只按给定的daysOfMonth等数组(假定已知)来打印出对应年份的年历即可;
2.学习第四章类与对象后,自学Calendar类后,计算所用数组中的数据,完成整个程序。体会面向对象中类库的益处。

//Mainpublic class Main {       public static void main(String[] args) {           int year;        Scanner in = new Scanner(System.in);        System.out.println("请输入年:");        year = in.nextInt();        CalendarGet calendarGet = new CalendarGet(year);        calendarGet.getData();  //getDate    }}//Calendarpublic class CalendarGet {       private int day;    private int month;    private  int year;    public CalendarGet(int year){           this.year = year;    }    public  void getData(){           CalendarBean calendarBean = new CalendarBean();        calendarBean.setYear(year);        for(int i = 0;i<12;i++){               calendarBean.setMonth(i+1);            String[] calendar =calendarBean.getCalendar();            System.out.println("\n======================================");            System.out.printf("\t\t     %d 月\t\t\n",i+1);    //printf:"%d"是一个int值的占位符,这个变量的参数在后面提供            System.out.println("  日  一   二   三  四  五  六");  //println用法些许不同            for(int j = 0; j < calendar.length; j++){                   if(j % 7 == 0)                    System.out.println("");   //7个换行                System.out.printf("%4s",calendar[j]);            }        }    }    //访问修饰符....封装性    public int getDay() {           return day;    }    public void setDay(int day) {           this.day = day;    }    public int getMonth() {           return month;    }    public void setMonth(int month) {           this.month = month;    }    public int getYear() {           return year;    }    public void setYear(int year) {           this.year = year;    }}//Calendarpublic class CalendarBean {       //初始化年月日月末    int day = 0;    int month = 0;    int year = 0;    int daysOfMonth[] = {   31,28,31, 30, 31, 30, 31, 31, 30, 31, 30, 31};    public void setYear(int year) {           this.year = year;    }    public void setMonth(int month) {           this.month = month;    }    public String[] getCalendar()    {      //输出格式6*7=42        String[] data = new String[42];        Calendar calendar = Calendar.getInstance();        calendar.set(year,month-1,1);        //计算1号的星期        int first = calendar.get(Calendar.DAY_OF_WEEK)-1;        if (month == 2)            if(((year%4 == 0) && (year%100 !=0)) || (year %400 == 0))                day = daysOfMonth[month-1]+1;            else                day = daysOfMonth[month-1];         else             day = daysOfMonth[month-1];         //把1号之前的利用空格存上        for (int i =0;i<first;i++)            data[i] = " ";        //日期存入        for (int i = first,n=1;i<first+day;i++){               data[i] = String.valueOf(n);            n++;        }        //剩余数组填满        for (int i = first+day;i<data.length;i++)            data[i] = " ";        return data;    }}

输入2020运行界面
在这里插入图片描述

原来这道作业题重点在样式的显示实现上
在这里插入图片描述
在这里插入图片描述

//代码是室友的,我还没写想着有空再重看这题class MyCalendar{               int[] daysOfMonth =new int[12];            int[] aOutputControl =new int[12];            int[] ctlofMaxHeight ={   6,6,6,6};            public void prtCalendar(int year){                   for(int i=0;i<12;i++){                       daysOfMonth[i]=getNumberOfDaysInMonth(year,i+1);                    if((getStartDay(year,i+1)+1-7)<=-6)                        aOutputControl[i]=getStartDay(year,i+1)+1;                    else aOutputControl[i]=getStartDay(year,i+1)+1-7;                }                int col=0,week,nmonth,roe=0;                for(roe=0;roe<4;roe++){                       for(int t=0;t<3;t++){                           System.out.print("----------------------------- ");                    }                    System.out.println();                    for(int t=0;t<3;t++){                           System.out.print(" Sun Mon Tue Wed Thu Fri Sat  ");                    }                    System.out.println();                    for(int i=0;i<ctlofMaxHeight[roe];i++){                           for(col=0;col<3;col++){                               nmonth=roe*3+col;                            for(week=0;week<7;week++){                                   if(aOutputControl[nmonth]<=0||aOutputControl[nmonth]>daysOfMonth[nmonth])                                    System.out.printf("%4c",' ');                                else                                    System.out.printf("%4d",aOutputControl [nmonth]);                                aOutputControl[nmonth]++;                            }                            System.out.print("  ");                        }                        System.out.println();                    }                }            }            public static int getStartDay(int year, int month) {                   final int START_DAY_FOR_JAN_1_1800 = 3;                int totalNumberOfDays = getTotalNumberOfDays(year, month);                return (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % 7;            }            public static int getTotalNumberOfDays(int year, int month) {                   int total = 0;                for (int i = 1800; i < year; i++)                    if (isLeapYear(i))                        total = total + 366;                    else                        total = total + 365;                for (int i = 1; i < month; i++)                    total = total + getNumberOfDaysInMonth(year, i);                return total;            }            public static int getNumberOfDaysInMonth(int year, int month) {                   if (month == 1 || month == 3 || month == 5 || month == 7 ||                        month == 8 || month == 10 || month == 12)                    return 31;                if (month == 4 || month == 6 || month == 9 || month == 11)                    return 30;                if (month == 2) return isLeapYear(year) ? 29 : 28;                return 0;            }            public static boolean isLeapYear(int year) {                   return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);            }        }        class Test {               public static void main(String args[]){                   Scanner input = new Scanner(System.in);                System.out.print("请输入查询的年份:\n");                int year = input.nextInt();                MyCalendar objCalendar;                objCalendar=new MyCalendar();                objCalendar.prtCalendar(year);            }        }

输出:
在这里插入图片描述


3、打印九九乘法表

package struct;public class ForDemo01 {       public static void main(String[] args) {           for (int i = 1; i <= 9; i++) {               for (int j =1;j<=i;j++){                   System.out.print(j+"*"+i+"="+(j*i)+"\t");            }            System.out.println();        }    }}

输出
在这里插入图片描述


上一篇:攻防世界新手区pwn
下一篇:做做C#

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月31日 02时15分38秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章