
做做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(); } }}
输出
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年03月31日 02时15分38秒
关于作者

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