----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
一.java中API
所谓API就是指说明书,上面写着所有的的功能和相关说明。在java中提到的API就是JDK中提供的各种功能的java类。
二。常用类之一(StringBuffer)
1 什么是StringBuffer
等待使用的String存放在StringBuffer中。
2 什么叫缓冲区
等待使用的数据存放在缓冲区中。
3 StringBuffer的好处(与String的不同之处)
String是不可变的,而StringBuffer是可变的!
如果一个字符串需要在计算过程中不断的发生变化,能使用应该先使用StringBuffer,然后在从StringBuffer中把计算后的String提取出来。
4 StringBuffer与数组的不同之处
数组长度是不可变的,而StringBuffer长度是可变的;
数组只有存放一种数组类型,但可以向StringBuffer中添加任何类型的数据,但提取出来后就都变成字符串了。
StringBuffer实例:
public class StringBufferDemo{
// 具体数字表
final static char[] data = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌',
'玖', '拾' };
// 单位表
final static char[] ch = { '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿' };
public static void main(String[] args) {
System.out.println(conut(347));
}
// 定义一个功能,返回值类型是什么呢?阿拉伯数字是什么类型,就返回什么类型(string),那传入的参数什么类型呢?,数字是int型
public static String conut(int num) {
int usm = 0;// 定义为常量,不能定义在循环里面,因为不然每次循环都会重新创建 的
// 定义一个字符容器
StringBuffer sb = new StringBuffer();// 注意不能定义在循环里
while (num != 0) {
// 指定位置添加字符,指定第一个位置添加,表中的字符,如果数比较大,单位怎么从左到右到左呢?指定的位置一直为0角标,那么每次都是第一个,这样就实现了从左到又读取
sb.insert(0, ch[usm++]);
// 如何获得整数的个数。可以采用取模,参数%10
int bell = num % 10;// 定义一个变量接受取模后的余数
// 取模后的数字,怎么对应阿拉伯数字呢?位置怎么排列呢?从左到右,一样每次指定0角标位置,添加取模后的数对应的角标
sb.insert(0, data[bell]);
num = num / 10;// 数字较大的话,进行取整,知道为0终止循环
}
return sb.toString();
}
}
总结:1.表ch对应的是单位,让它每次进行递增这样就可以实现每次取模后的数字单位了,定义个变量进行自增,放在循环外
2.如何将较大的数和表中的位置相对应!采用循环取模模10这样的方式,余数变量刚好对应表data,那较大的数如何取得呢?采用取整除10,这样刚好让它进行依次循环,循环到0,条件不成立终止循环
三、常用类之一(math)
math类的特点:
1.因为没有实例方法,所以就不需要创建本类实例;
2.因为不需要实例,也就不需要有构造器;
3.因为怕有默认构造器,所以需要有private构造器;
4.这样的类好像也不需要有子类,所以Math是final类。
math类实例:
**
* 需求:猜数字小游戏!数字范围0-100的整数.
*
* */
public class StringTest {
public static void main(String[] args) {
System.out.println("请在下面输入数据:");
//创建一个伪随机数
Random r = new Random();
//范围在1-100
int a = r.nextInt(100);
// 定义一个boolean变量作为标记
boolean flag = false;
//用户只能猜8次
for (int i = 1; i < 8; i++) {
//使用键盘录入的方式
Scanner in = new Scanner(System.in);
int b = in.nextInt();
//如果录入的数字大于随机数
if (b > a) {
//打印相应的字符串和次数
System.out.println("您输入的数据大了,请重新输入!" + "。" + "第" + i + "次输入");
//如果数字小于随机数
} else if (b < a) {
//打印相应的字符串和次数
System.out.println("您输入的数据小了,请重新输入!" + "。" + "第" + i + "次输入");
//如果等于循环环结束
} else if (b == a) {
//标记为真
flag = true;
break;
//如果已经猜了7次循环终止
} else if (i == 8) {
break;
}
}
//如果标记为真,并且录入的数字和随机数相等,给出相应的字符串,否则给出答案和相应的字符串
if (flag) {
System.out.println("【聪明伶俐一百分!】:" + "正确答案为" + a);
} else {
System.out.println("【靠,你小子弱智啊!!】:" + "正确答案为" + a);
}
}
}
总结:通过键盘录入,判断录入的数字是否等于随机数,定义一个标记,如果随机数等于录入数,循环终止标记改为true,如果输入出国8次循环终止,但标记不变
四、常用类之一(Carlendar)
Carlendar抽象类
1 获取Carlendar
Carlendar c = Calendar.getInstance();
getInstance()方法返回的是Carlendar子类的实例对象。
Carlendar类只有一个子类:GregorianCarlendar。
2 GregorianCarlendar构造器
GregorianCarlendar():构造当前时间;
GregorianCarlendar(int year, int month, int day):指定年、月、日来构造时间;
GregorianCarlendar(int year, int month, int day, int hour, int minute):指定年、月、日、时、分来构造时间;
GregorianCarlendar(int year,int month,int day,int hour, int minute, int second):指定年、月、日、时、分、秒来构造时间。
3 Calendar的获取方法
get(int field),获取属性。
获取年:get(Calendar.YEAR);
获取月:get(Calendar.MONTH),注意,如果当前月份是1,那么返回值为0;
获取日:get(Calendar.DATE);
获取星期:get(Calendar.DAY_OF_WEEK),注意,如果当前是星期日,那么返回值为1。
获取小时:get(Calendar.HOUR_OF_DAY)
获取分钟:get(Calendar.MINUTE)
获取秒钟:get(Calendar.SECOND)
3 Calendar的设置方法
set(int field, int value)
设置年:set(Calendar.YEAR, 2050)
设置月:set(Calendar.MONTH, 11),设置月份为12月!!!
设置日:set(Calendar.DATE, 28)
4 Calendar的add方法
add(int field, int value)
这个方法用来相对当前时间来设置属性
设置年:add(Calendar.YEAR, 1),如果当前是2010年,那么这个方法就是把年份+1。
这个方法也可以用来相对设置其他属性,这里不在赘述!
5 与Date之间的转换
setDate(Date):使用Date对象设置当前Calendar对象
Date getDate():把当前对象转换成Date对象。
6 获取最大值方法
int getActualMaximum(int filed):获取指定字段的真实最大值。例如:c.getActualMaximum(Calendar.DATE),如果当前日历为2月,那么返回值为28。即2月的最大天数。
Calendar实例:
import java.util.Calendar;
public class StringDate {
public static void main(String[] args) {
System.out.println("日 一 二 三 四 五 六");
Calendar cl = Calendar.getInstance();
// 获取当日
int today = cl.get(Calendar.DATE);
// 设置当日1号
cl.set(Calendar.DATE, 1);
// 获取当前日期是星期几
int w = cl.get(Calendar.DAY_OF_WEEK);
// 打循环输出空格,i=星期日; i<当前日期是星期几
for (int i = Calendar.SUNDAY; i < w; i++) {
System.out.print(" ");
}
// 获取当前月一共多少天
int maxday = cl.getActualMaximum(Calendar.DATE);
// 知道了当前月一共多少天,就可以确定循环的次数
for (int i = 0; i < maxday; i++) {
int day = cl.get(Calendar.DATE);
// 如果day<10,打印一个空格补位
if (day < 10) {
System.out.print(" ");
}
// 如果day==today,打印一个星号和一个空格,否则打印两个空格;
System.out.print(day);
if (day == today) {
System.out.print("* ");
} else {
System.out.print(" ");
}
int week = cl.get(Calendar.DAY_OF_WEEK);
if (week == Calendar.SATURDAY) {
System.out.println();
}
// 让日期自增一天。
cl.add(Calendar.DATE, 1);
}
}
}
总结:calendar类是一个抽象类,用newInstance方法创建其子类的的实例对象.设置当天日期回到1号,循环判断如果不为1,输出四个空格。然后进行判断当为6的时候换行,最后设置当天日期进行自增。
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------