API就是应用程序编程接口,给java程序员提供的接口和操作方法。
常用的API;
String类和StringBuffer
String:字符串数据类型。属于引用数据类型。
String一旦初始化就不可修改,是常量
示例:
class StringTest
{
public static void main(String[] args)
{
String s = "abc";
s="bcx";
System.out.println(s);
}
}
字符串并没有改变只是指向了新建的字符串对象“bcx”
String重写了Object中的equals方法,不再比较地址值,比较的是字符串内容
字符串创建的时候有一个常量池,如果常量池中字符串内容相同,则不会新建一个字符串对象,而是指向已有的字符串对象
示例:
class StringTest
{
public static void main(String[] args)
{
String s = "abc";
String s1="abc";
System.out.println(s==s1);
}
}
如果定义一个S1对象在常量池中,定义另一个S2对象在堆内存中,用==判断会显示false,因为其比较的是地址值,而用equals判断,会显示true,因为String的equals比较的是字符串内容
示例:class StringTest
{
public static void main(String[] args)
{
String s = "abc";
String s1=new String("abc");
System.out.println(s==s1);
System.out.println(s.equals(s1));
}
}
String的获取方法示例:
class stringTest1
{
public static void main(String[] args)
{
method_get();
}
public static void method_get()
{
String s="abcdrfgcdfdd";
sop(s.length());//求出字符串的长度
sop(s.charAt(3));//求出索引为3的字符
sop(s.indexOf('f'));//返回f第一次出现的位置
sop(s.indexOf('f',6));//从索引6以后,第一次出现的位置
sop(s.indexOf("cd"));//返回cd第一次出现的位置
sop(s.indexOf("cd",6));//从索引6以后,第一次出现的位置
sop(s.lastIndexOf('c'));//从最后开始反向搜索第一次出现的位置
sop(s.lastIndexOf('c',4));//从索引4开始反向索引
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
String的判断方法示例:
class stringTest1
{
public static void main(String[] args)
{
method_judge();
}
public static void method_judge()//判断
{
String s="arrayTest.java";
s.contains("Test");//判断是否包含Test
if(s.indexOf("Test")!=-1)//判断是否包含Test,如果包含并返回所在位置
sop("true________"+s.indexOf("Test"));
else
sop("false");
sop(s.isEmpty());//数组长度是否为0,
sop(s.startsWith("array"));//字符串是不是以array开头
sop(s.endsWith(".java"));//字符串是否以.java结尾
sop(s.equalsIgnoreCase("arrAYtest.JAVA"));//判断字符串是否相同,不区分大小写
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
String的转换方法示例:
class arrayTest2
{
public static void main(String[] args)
{
method_str();
}
public static void method_str()
{
//将字符数组转换成字符串
char[] arr={'a','v','c','d','w','e','f','q'};
String s=new String(arr,1,3);
sop(s);
//方法二,将字符数组转换成字符串
String s1=new String();
sop(s1.copyValueOf(arr,2,4));
//将字符串转成字符数组
String s2="sdjasifh";
char[] chs=s2.toCharArray();
for(int i=0;i
String的其他方法示例:
class arrayTest3
{
public static void main(String[] args)
{
method_1();
}
public static void method_1()
{
String s="superbug";
//替换字符把bug替换成age
String s1=s.replace("bug","age");
sop(s);
sop(s1);
//切割字符串,并存入数组,依据某个特定点来切割
String s2="zhangsan,lisi,wangwu,zhaoliu";
String s3="zheyimkeiermshuijiaomgg";
String[] arr=s2.split(",");
for(int i=0;i
StringBuffer和StringBuilder区别:
方法都相同,只不过StringBuffer是同步的,而StringBuilder是不同步的。
以StringBuffer为例:
class stringbufferTest
{
public static void main(String[] args)
{
//buffcreate();
//bufferdel();
//bufferget();
//bufferupdate();
//bufferreverse();
//将缓冲区中指定的容器存到指定的字符数组中
StringBuffer sb=new StringBuffer();
sb.append("lisi1234568").append("qwerty").append("asdfgh");
char[] arr=new char[6];
sb.getChars(0,4,arr,1);
for(int x=0;x
基本数据包装类
8大基本数据类型都有其对应的包装类
Integer int
Character char
Float float
Double double
Byte byte
Long long
Short short
Boolean boolean
该包装类用于和字符串之间的转化
字符串装换成基本类型
格式:xxx parsexxx(“字符串”);
除了Character以外。
基本类型转字符串
String.valueOf(基本数据类型);或者是基本数据类型+“”即可
System类
常用方法:
static void exit(int status)终止虚拟机运行
static void CurrentTimeMillis 返回一毫秒为单位的当前时间
static Properties getProperties 确定当前系统属性
示例:
import java.util.*;
class systemDemo
{
public static void main(String[] args)
{
//确定当前系统属性,方法一
Properties prop = System.getProperties();
System.setProperty("mykey","myvalue");//设置指定键指示的系统属性
sop(System.getProperty("os.name"));//获取指定键的指示的系统属性
sop(System.getProperty("mykey"));
String value=System.getProperty("GG");
sop("value="+value);
/*Set
Runtime类:运行进程,不能直接创建Runtime示例,但可以通过静态方法Runtime.getRuntime获取正在运行的对象引用,
示例:
class runtimeDemo
{
public static void main(String[] args) throws Exception
{
Runtime r=Runtime.getRuntime();
r.exec("notepad.exe systemDemo.java");//将Java文件用文本形式打开
}
}
Date与DateFormat,Calendar类
Date类用于表示日期和时间
DateFormat,Calendar类是来解决Date类产生的国际化问题
Calendar类是一个抽象基类
综合应用:
编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Test9 {
public static void main(String[] args) {
//定义一个键盘输入
Scanner in = new Scanner(System.in);
//输出一个提示
System.out.println("请按“yyyy-MM-dd”的格式输入一个日期,格式要正确");
//定义一个字符串接收输入的时间
String s=in.nextLine();
//定义输入格式,必须一样,不然会报异常
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//定义一个日期类,
Date d=null;
try
{
//用DateFormat的转换功能把字符串按照指定格式传给Date
d = df.parse(s);
}
catch(Exception e)
{
throw new RuntimeException("说了格式要正确,重来吧!!!");
}
//获得一个Calendar类,返回类型也是Calendar
Calendar c = Calendar.getInstance();
//把日历的时间设置为用户输入进来的时间
c.setTime(d);
//输出用户输入的时间
System.out.println("您输入的日期是:"+s);
//用get得到日历中的一星期中的天数,因为是以星期天作为第一天,会导致天数不对,使用查表法
int weekday=c.get(Calendar.DAY_OF_WEEK);
//得到一年中的天数
int yearday=c.get(Calendar.DAY_OF_YEAR);
//定义一个数组
String[] day ={"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
//根据上面数组得到具体星期天数
String todayweek = day[weekday];
//输出具体星期天数
System.out.println("这一天是:"+todayweek);
//输出第几天
System.out.println("这是一年中的第:"+yearday+"天");
}
}
Math类和Random类
Math类几乎包含了所有用于几何和三角的浮点运算方法
示例:
import java.util.*;
class MathDemo
{
public static void main(String[] args)
{
for(int i=0;i<10;i++)
{
int z=(int)(Math.random()*10+1);//返回1到10的随机数
sop(z);
//方法二,util包中有Random类
Random r = new Random();
int s=r.nextInt(10)+1;
sop(s);
}
double d = Math.ceil(-13.35);//ceil返回大于指定数据的最小整数
double d1 = Math.floor(-13.35);//ceil返回小于指定数据的最小整数
long l = Math.round(13.35);//四舍五入
double d2 = Math.pow(2,3);//前面是底数,后面是指数,即2的3次饭
sop(d);
sop(d1);
sop(l);
sop(d2);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
Random类是一个随机数产生器,是按照某种算法产生的,严格意义上来说是伪随机数
示例:
import java.util.*;
class RandomDemo
{
public static void main(String[] args)
{
Random r = new Random();//定义一个随机流对象
for(int i=0;i<=10;i++)//循环打印出随机值
{
System.out.println(r.nextInt(10)+1);//1到10的随机数,包含1,也包含10
}
}
}
总之API文档要多看看,会有很多惊喜的!