关键词:String类、StringBuffer类、System类、Math类、Random类、Date类、Calendar类、DateFormat类
API (Application Programming Interface)指的是应用程序编程接口。
一、String类和StringBuffer类
String类和StringBuffer类位与java.lang包中。
1、String类
①字符串都是对象
②一旦初始化就不可以被更改,因为是常量。
③通过String类的构造函数可以知道,将字节数组或字符转成字符串。
2、String类的构造方法
3、String类常用方法:(包左不包右)
示例:
1 public class Example02 { 2 public static void main(String[] args) { 3 new Thread(new One()).start(); 4 new Thread(new Two()).start(); 5 new Thread(new Three()).start(); 6 new Thread(new Four()).start(); 7 new Thread(new Five()).start(); 8 } 9 }10 //字符串的基本操作11 class One implements Runnable{12 public void run() {13 String s = "abcdedcba";14 System.out.println("字符串的长度为:"+s.length());15 System.out.println("字符串中第一个字符:"+s.charAt(0));16 System.out.println("字符c中第一个出现的位置:"+s.indexOf('c'));17 System.out.println("字符c中最后出现的位置:"+s.lastIndexOf('c'));18 System.out.println("_____________");19 }20 }21 //字符串的判断操作22 class Two implements Runnable {23 public void run() {24 String s1 = "abcdedcba";25 String s2 = "ABCDEDCBA";26 System.out.println("字符串结尾是否是A:" + s1.endsWith("A"));27 System.out.println("字符串s1与s2是否相同:" + s1.equals("ABCDEDCBA"));28 System.out.println("字符串s1是否为空:" + s1.isEmpty());29 System.out.println("字符串s1是否以abc开头:" + s1.startsWith("abc"));30 System.out.println("字符串s1是否包含abc:" + s1.contains("abc"));31 System.out.println("将字符串s1转为大写:" + s1.toUpperCase());32 System.out.println("将字符串s2转为小写:" + s1.toLowerCase());33 System.out.println("_____________");34 }35 }36 //字符串的转换操作37 class Three implements Runnable{38 public void run() {39 String s3 = "abcd";40 System.out.print("将字符串转为字符数组后的结果");41 char[] charArray=s3.toCharArray();42 for (int i = 0;i<charArray.length;i++){43 if(i!=charArray.length-1){44 System.out.print(charArray[i]+",");45 }else46 System.out.println(charArray[i]);47 }48 System.out.println("将int值转换为String类型之后的结果:"+String.valueOf(123));49 System.out.println("_____________");50 }51 }52 //字符串的替换和去除空格操作53 class Four implements Runnable{54 public void run() {55 String s = "itcase";56 System.out.print("将it替换为cn.it的结果:"+s.replace("it","cn.it"));57 String s4 = " i t c a s e ";58 System.out.println("去除字符串两端空格后的结果:"+s4.trim());59 System.out.println("去除字符串所有空格后的结果:"+s4.replace(" ",""));60 System.out.println("_____________");61 62 }63 }64 //字符串的截取和分割65 class Five implements Runnable{66 public void run() {67 String str = "羽毛球-篮球-乒乓球";68 System.out.println("从第五个字符截取到末尾的结果:"+str.substring(4));69 System.out.println("从第五个字符截取到第六个字符的结果:"+str.substring(4,6));70 System.out.print("分割后的字符串数组中的元素依次为:");71 String[] strArray = str.split("-");72 for (int i = 0;i<strArray.length;i++){73 if(i!=strArray.length-1){74 System.out.print(strArray[i]+",");75 }else {76 System.out.println(strArray[i]);77 }78 }79 System.out.println("_____________");80 }81 }
运行结果:
字符串的长度为:9字符串中第一个字符:a字符c中第一个出现的位置:2字符c中最后出现的位置:6_____________字符串结尾是否是A:false字符串s1与s2是否相同:false字符串s1是否为空:false字符串s1是否以abc开头:true字符串s1是否包含abc:true将字符串s1转为大写:ABCDEDCBA将字符串s2转为小写:abcdedcba_____________将字符串转为字符数组后的结果a,b,c,d将int值转换为String类型之后的结果:123_____________从第五个字符截取到末尾的结果:篮球-乒乓球从第五个字符截取到第六个字符的结果:篮球分割后的字符串数组中的元素依次为:将it替换为cn.it的结果:cn.itcase去除字符串两端空格后的结果:i t c a s e去除字符串所有空格后的结果:itcase_____________羽毛球,篮球,乒乓球_____________
4、StringBuffer:字符串缓冲区,类似是一个字符容器,将任何数据转变字符串进行添加。
5、StringBuffer类常用方法:
示例:
1 public class Example08 { 2 public static void main(String[] args) { 3 add(); 4 new Thread(new remove()).start(); 5 System.exit(0); 6 new Thread(new alter()).start(); 7 } 8 public static void add() { 9 System.out.println("1、添加——————————————————");10 StringBuffer sb = new StringBuffer(); //定义一个字符串缓冲区11 sb.append("abcdefg");//在末尾添加字符串12 System.out.println("append添加结果:" + sb);13 sb.insert(2, "123");14 System.out.println("insert添加结果:" + sb);15 }16 }17 class remove implements Runnable{18 @Override19 public void run() {20 System.out.println("2、删除——————————————————");21 StringBuffer sb = new StringBuffer("abcdefg");22 sb.delete(1,5);//指定范围删除23 System.out.println("删除指定范围结果:"+sb);24 sb.deleteCharAt(2);//指定位置删除25 System.out.println("删除指定位置结果:"+sb);26 sb.delete(0,sb.length());//清除缓存区27 System.out.println("清空缓冲区结果:"+sb);28 }29 }30 class alter implements Runnable{31 @Override32 public void run() {33 System.out.println("3、修改——————————————————");34 StringBuffer sb = new StringBuffer("abcdefg");35 sb.setCharAt(1,'p');//修改指定位置字符36 System.out.println("修改指定位置字符结果:"+sb);37 sb.replace(1,3,"qq");//替换指定位置字符串或字符38 System.out.println("替换指定位置字符串或字符结果:"+sb);39 System.out.println("字符串翻转结果:"+sb.reverse());40 }41 }
运行结果:
1、添加——————————————————append添加结果:abcdefginsert添加结果:ab123cdefg2、删除——————————————————删除指定范围结果:afg删除指定位置结果:af清空缓冲区结果:
6、StringBuffer与String的区别
①String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的,而StringBuffer表示字符容器,其内容和长度都可以随时改变。
②String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖。
③String类对象可以用操作符+进行连接,而StringBuffer类对象之间不能。
二、System类常用方法
Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。实例方法:Runtime run = Runtime.getRuntime();
三、Math类与Random类
1、Math类是数学操作类,静态方法。如
1 public class Testt01 { 2 public static void main(String[] args) { 3 System.out.println("取绝对值:"+Math.abs(-2)); 4 System.out.println("向上取整:"+Math.ceil(2.1)); 5 System.out.println("四舍五入:"+Math.round(2.1)); 6 System.out.println("向下取整:"+Math.floor(2.1)); 7 System.out.println("取最大值:"+Math.max(3.2,2.1)); 8 System.out.println("取最小值:"+Math.min(3.21,2.1)); 9 System.out.println("反余弦:"+Math.acos(Math.PI/90));10 System.out.println("反正弦:"+Math.asin(Math.PI/45));11 System.out.println("反正切:"+Math.atan(12));12 System.out.println(Math.atan2(12,12));13 System.out.println("余弦:"+Math.cos(Math.PI/3));14 System.out.println("正弦:"+Math.sin(30*Math.PI/180));//单位为弧度,30度用弧度表示(30*Math.PI/180);15 System.out.println("自然对数的底数e:"+Math.E);16 System.out.println("自然对数的底数e的n次方:"+Math.exp(12));17 System.out.println("圆周率:"+Math.PI);18 System.out.println("平方根:"+Math.sqrt(5));19 System.out.println("生成一个大于等于0.0小于1.0的随机值:"+Math.random()); 20 System.out.println("2的3次方:"+Math.pow( 2,3 )); 21 System.out.println( System.currentTimeMillis() );//获得当前系统时间,运行程序最省内存 22 System.out.println( new Date().getTime() );23 System.out.println( Calendar.getInstance().getTime() );24 25 } 26 }
运行结果:
1 取绝对值:2 2 向上取整:3.0 3 四舍五入:2 4 向下取整:2.0 5 取最大值:3.2 6 取最小值:2.1 7 反余弦:1.5358826490960904 8 反正弦:0.06987000497506388 9 反正切:1.487655094906455310 0.785398163397448311 余弦:0.500000000000000112 正弦:0.4999999999999999413 自然对数的底数e:2.71828182845904514 自然对数的底数e的n次方:162754.7914190039215 圆周率:3.14159265358979316 平方根:2.2360679774997917 生成一个大于等于0.0小于1.0的随机值:0.366045471773395518 2的3次方:8.019 149897643508020 149897643508521 Sun Jul 02 14:20:35 CST 2017
2、Rondom类,非静态方法
Rondom类构造方法:Rondom();Rondom( long seed);
Rondom类常用方法
示例:
1 public class Example16 { 2 public static void main(String[] args) { 3 new Thread(new One()).start(); 4 new Thread(new Two()).start(); 5 new Thread(new Three()).start(); 6 } 7 } 8 class One implements Runnable{ 9 public void run() {10 Random r = new Random();//不传入种子11 // 随机产生10个[0,100)之间的整数12 for (int x=0;x<10;x++){13 System.out.println(r.nextInt(100));14 }15 System.out.println("_____________");16 }17 }18 class Two implements Runnable{19 public void run() {20 Random r = new Random(13);//不传入种子21 // 随机产生10个[0,100)之间的整数22 for (int x=0;x<10;x++){23 System.out.println(r.nextInt(100));24 }25 System.out.println("_____________");26 }27 }28 class Three implements Runnable{29 public void run() {30 Random r = new Random();31 System.out.println("产生float类型随机数"+r.nextFloat());32 System.out.println("产生0~100之间int类型随机数"+r.nextInt(100));33 System.out.println("产生double类型随机数"+r.nextDouble());34 System.out.println("_____________");35 }36 }
运行结果:
1 90 2 98 3 23 4 17 5 97 6 66 7 10 8 42 9 1010 6711 _____________12 9213 014 7515 9816 6317 1018 9319 1320 5621 1422 _____________23 产生float类型随机数0.958026924 产生0~100之间int类型随机数4425 产生double类型随机数0.1398726690347320626 _____________
四、针对日期类型的操作类有三个,分别是java.util.Date,java.util.Calendar和 java.text.DateFormat 。
1、Date类用于表示日期和时间:其中构造方法:
①Date()用于创建当前日期时间的Date对象,
②Date(long date)用于创建指定时间的Date对象。创建如:
Date date1 = new Date();
Date date2 = new Date(9666546565L );
2、Calendar类用于完成日期和时间字段的操作,为抽象类,不能被实例化,在程序中需要调用其静态方法getInstance()来得到一个Calendar对象,然后调用其相应的方法:
Calendar calendar = Calendar.getInstance();
Calendar常用方法:
注意:Calendar.MONTH字段月份的起始值是从0开始而不是1 。
示例:
1 public class Example { 2 public static void main(String[] args) { 3 new Thread(new One()).start(); 4 new Thread(new Two()).start(); 5 } 6 } 7 class One implements Runnable { 8 public void run() { 9 Date date = new Date();10 Date date2 = new Date(966666666666L);11 System.out.println(date);12 System.out.println(date2);13 System.out.println("--------------");14 }15 }16 class Two implements Runnable {17 public void run() {18 Calendar calendar = Calendar.getInstance();//获取表示当前时间的Calendar19 int year = calendar.get(Calendar.YEAR);20 int month = calendar.get(Calendar.MONTH)+1;21 int date = calendar.get(Calendar.DATE);22 int hour = calendar.get(Calendar.HOUR);23 int minute = calendar.get(Calendar.MINUTE);24 int second = calendar.get(Calendar.SECOND);25 System.out.println("当前时间为:"+year+"年"+month+"月"+date+"日"+hour+"时"+minute+"分"+second+"秒");26 System.out.println("--------------");27 }28 }
运行结果:
Sun Jul 02 14:29:41 CST 2017Sat Aug 19 14:31:06 CST 2000-------------当前时间为:2017年7月2日2时29分41秒--------------
3、DateFormat类,专门用于将日期格式化为字符串或者用特定格式显示的日期字符串转换成一个Date对象,抽象类不可实例化,但提供静态方法。
SimpleDateFormat ,DateFormat类子类,可通过new创建实例对象, 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户 自定义日期时间格式来运行。如:
SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。
以上实例编译运行结果如下:
Current Date: Sun 2014.07.18 at 14:14:09 PM PDT
其中parse(String source)方法,它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。
示例:
1 public class Example { 2 public static void main(String[] args) throws Exception{ 3 // 创建一个SimpleDateFormat 对象 4 SimpleDateFormat df1 = new SimpleDateFormat( 5 "Gyyyy年MM月dd日:今天是yyyy年的第D天,E"); 6 // SimpleDateFormat 对象的日期模板格式化Date对象 7 System.out.println(df1.format(new Date())); 8 9 SimpleDateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日");10 String dt = "2012年8月3日";11 // 将字符串解析成Date对象12 System.out.println(df2.parse(dt));13 }14 }
运行结果:
AD2017年07月02日:今天是2017年的第183天,SunFri Aug 03 00:00:00 CST 2012
以上就是Java中API的详细介绍的详细内容,更多请关注其它相关文章!
最困难之时,就是我们离成功不远之日。