java夯实基础-常用实用类

来源:互联网 发布:软件开发的发展 编辑:程序博客网 时间:2024/05/22 10:51

本文测试java中常用的类

包括:Object 、 String、 StringBuffer、 Tokenizer、 Date、 Calendar、 Math BingInteger

一、Object:所有类的祖先

package com.wllfengshu.test;/** * Object类 * @author Administrator *补充:java包分为核心包和扩展包,核心包名以java开头,扩展包名以javax开头 */public class Test1Object {public static void main(String[] args) {//1、Object类是所有类的祖先,所有的类都隐式继承Object,Object类中的三个方法如下//2、测试equals()方法A a=new A();B b=new B();System.out.println(a.equals(b));//比较对象是否指向同一个引用/** * Object中的equals方法如下: * public boolean equals(Object obj){ * return (this==obj) * } *///3测试hashCode()方法//hashCode()用来返回对象的散列码(哈希值)String c="123";String d="123";System.out.println(c.equals(d));System.out.println(c.hashCode() == d.hashCode());//总结:常见String类和基本数据类型的包装类都满足:若equals方法为true,则哈希值相等//4测试toString()方法//对象调用该方法返回默认格式:类名@对象的十六进制哈希值System.out.println(a);}}class A{public void a(){System.out.println("a");}}class B{public void b(){System.out.println("b");}}

二、 String:字符串

package com.wllfengshu.test;import org.junit.Test;/** * 测试 String字符串的特点、常用方法、注意事项 *    StringBuffer、StringBuilder * @author Administrator * */public class Test2String {//0、String类为fianl类,不能被继承/*class extString extends String{//错误:String类为final类,不能被继承 }*///1、创建字符串对象的方法@Testpublic void test1(){String a="ABC";//通过字符串常量创建String b=new String("ABC");//通过构造函数创建(注:String的构造函数还有很多)String c=new String("ABC");String d="ABC";System.out.println(a==b);//false:双等号比较的字符串的首地址,故不想等System.out.println(a.equals(b));//trueSystem.out.println(b==c);//false:双等号比较的字符串的首地址,故不想等System.out.println(a==d);//true:变量a和d都指向字符串常量"123"}//2、String类常用方法@Testpublic void test2(){String a="ABCDE";System.out.println(a.length());//或者字符串长度String b="ABC";System.out.println(a.equals(b));//比较字符串变量a和b是否指向相同实体String c="abc";System.out.println(c.equalsIgnoreCase(b));//忽略大小写比较c和d是否指向相同实体System.out.println(a.startsWith("AB"));//判断字符串a是否以AB开头System.out.println(a.endsWith("E"));//判断字符串a是否以E结尾System.out.println(a.compareTo("AD"));//a按照字典顺序与AD字符串比较大小,相等返回0System.out.println(a.compareToIgnoreCase("ab"));//按照字典顺序比较,忽视大小写System.out.println(a.contains("CD"));//判断字符串a是否含有指定字符串CDSystem.out.println(a.indexOf("C"));//从字符串a的开头检查,首次出现字符串C的索引System.out.println(a.indexOf("C",1));//从字符串a的索引为1处检查,首次出现字符串C的索引System.out.println(a.lastIndexOf("C"));//从字符串a的开头检查,最后一次出现字符串C的索引System.out.println(a.substring(3));//从索引为3处一直截取到最后,包括3System.out.println(a.substring(1, 3));//从索引1截取到索引3,不包括3String d="  ABCDEF G ";System.out.println(d.trim());//去掉字符串d前后的空格String e="123hello456".replaceAll("[a-zA-Z]", "你好");System.out.println(e);//把字符串中对于满足正则表达式[a-zA-Z]的部分替换为"你好"String f="abcd efgh ijk";String[] g=f.split(" ");//按照空格进行分解字符串,空格可以是其他正则表达式System.out.println(g[1]);}}

三、 StringBuffer:可编辑字符串

package com.wllfengshu.test;/** * 测试StringBuffer 和  StringBuilder * @author Administrator * */public class Test3StringBuffer {public static void main(String[] args) {//0、String字符串不能修改,但是StringBuffer创建的字符串可以修改//1、构造函数:StringBuffer a = new StringBuffer("abc");//无参System.out.println(a.length());//存放的字符串的长度System.out.println(a.capacity());//该对象实际占用空间//2、常用方法(很多方法都有重载)System.out.println(a.append("123456"));//追加内容System.out.println(a.charAt(2));//获取索引为2的字符a.setCharAt(1, 'k');//把索引为1的位置替换为字符'k'System.out.println(a);System.out.println(a.insert(1, 'h'));//把指定字符插入到索引为1出StringBuffer b=a.reverse();//字符串翻转System.out.println(b);StringBuffer c=a.delete(1, 2);//删除字符串中索引1到2的字符(不包括索引2)System.out.println(c);StringBuffer d=a.replace(2, 3,"4");//用字符串4替换字符串a索引2到3的字符(不包括索引3)System.out.println(d);//3、StringBuilder和StringBuffer区别//StringBuilder:线程非安全的(建议单线程时使用)//StringBuffer:线程安全的(建议多线程时使用)}}

四、 Tokenizer:字符串分解

package com.wllfengshu.test;import java.util.StringTokenizer;/** * 测试StringTokenizer * @author Administrator  * 字符串分析器 */public class Test4StringTokenizer {public static void main(String[] args) {//默认使用空格、换行、回车、tab符、进纸符进行分割StringTokenizer a = new StringTokenizer("ni hao");while (a.hasMoreElements()) {String b = (String) a.nextElement();System.out.println(b);}//用指定字符来进行分割(可以同时多个字符)StringTokenizer c=new StringTokenizer("ni hao,wo hai mei chi fan"," ,");while (c.hasMoreTokens()) {String d = (String) c.nextElement();System.out.println(d);}}}

五、 Date:日期

package com.wllfengshu.test;import java.text.SimpleDateFormat;import java.util.Date;/** * 测试Date类 * @author Administrator * 日期 */public class Test5Date {public static void main(String[] args) {Date a = new Date();System.out.println(a);SimpleDateFormat b=new SimpleDateFormat("yyyy-MM-dd");//日期格式化System.out.println(b.format(a));}}

六、Calendar:日历

package com.wllfengshu.test;import java.util.Calendar;import java.util.Scanner;/** * 测试Calendar、程序输入日历的例子 * @author Administrator * 日历 */public class Test6Calendar {public static void main(String[] args) {//Calendar a=Calendar.getInstance();//a.set(2017, 9, 28);//int b = a.get(Calendar.MONTH);//System.out.println(b);//////eg:判断1949和2009之间相隔多少天//Calendar calendar=Calendar.getInstance();//calendar.set(1949, 2, 1);//注意:这里是三月//long time1=calendar.getTimeInMillis();//calendar.set(2009, 2, 1);//long time2=calendar.getTimeInMillis();//long days=(time2-time1)/(24*60*60*1000);//System.out.println(days);@SuppressWarnings("resource")Scanner scanner=new Scanner(System.in);String in = scanner.nextLine();String[] input=in.split(" ");String year=input[0];String month=input[1];System.out.println("输入日期为:"+year+"年"+month+"月");MyCalendar mc=new MyCalendar(year,month);String[] output=mc.getCalendar();char[] str="日一二三四五六".toCharArray();for (char c : str) {System.out.printf("%7c",c);}for (int i = 0; i < output.length; i++) {if (i%7==0) {System.out.println();}System.out.printf("%4s",output[i]);}}}/** * 通过里面的getCalendar()方法获取一个日历,存放在数组中 */class MyCalendar{private int year;private int month;public MyCalendar(String year,String month){this.year=Integer.valueOf(year);this.month=Integer.valueOf(month);}public String[] getCalendar() {String[] a=new String[42];//把每天几号都存在数组中Calendar calendar=Calendar.getInstance();calendar.set(year, month,1);int weekDay=calendar.get(Calendar.DAY_OF_WEEK)-1;//计算1号星期几System.out.println("这个月的1号是星期:"+weekDay);int day=0;if (month==1 || month==3 || month==5 || month==7 || month==8 ||month==10 || month==12) {day=31;}else if (month==4 || month==6 || month==9 || month==11) {day=30;}else if (month==2) {if (((year%4==0)&&(year%100==0)) ||(year%400==0)) {day=29;}else {day=28;}}else {System.out.println("月份错误");}System.out.println("这个月有的天数:"+day);for (int i = 0; i < weekDay; i++) {//1号前几天都为空a[i]="";}int flay=1;//几号for (int i = weekDay; i < weekDay+day; i++) {//处理后面的天数a[i]=String.valueOf(flay);flay++;}for (int i = weekDay+day; i < a.length; i++) {//处理多余的a[i]="";}return a;}}

七、Math:数学

package com.wllfengshu.test;/** * 测试Math中常用数学方法 * @author Administrator * */public class Test7Math {public static void main(String[] args) {int a=-34;int b=3;System.out.println(Math.abs(a));//返回a的绝对值System.out.println(Math.pow(a, b));//求a的3次幂System.out.println(Math.sqrt(b));//返回b的平方根System.out.println(Math.max(a, b));//返回a,b中最大的值}}

八、 BingInteger:大整数

package com.wllfengshu.test;import java.math.BigDecimal;import java.math.BigInteger;/** * 测试大数类 * @author Administrator * */public class Test8BigInteger {public static void main(String[] args) {BigInteger a=new BigInteger("1212121212");//整数BigInteger b=new BigInteger("121212");//整数BigDecimal c=new BigDecimal("12121.121212121212");//浮点数//使用大数做算术运算不能使用运算符,要使用相应的方法System.out.println(a.add(b));//加法System.out.println(a.subtract(b));//减法System.out.println(a.multiply(b));//乘法System.out.println(a.divide(b));//除法System.out.println(a.remainder(b));//求余数System.out.println(a.compareTo(b));//比较大小System.out.println(a.abs());//绝对值System.out.println(a.pow(3));//a的3次幂}}


原创粉丝点击