您的位置:首页 > 职场人生

黑马程序员_javaAPI

2015-07-21 12:24 531 查看
API就是应用程序编程接口,给java程序员提供的接口和操作方法。

常用的API;

String类和StringBuffer

String:字符串数据类型。属于引用数据类型。

String一旦初始化就不可修改,是常量

示例:

<span style="font-size:24px;">class StringTest
{
public static void main(String[] args)
{
String s = "abc";
s="bcx";
System.out.println(s);
}
}</span>




字符串并没有改变只是指向了新建的字符串对象“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<chs.length;i++)
{
sop(chs[i]);
}
//将字节数组转换成字符串
byte[] b1={65,66,67,88,99,66};
String s4=new String(b1);
sop(s4);
//将字符串转换成字节数组
String s3="qwertyuuii";
byte[] b=s3.getBytes();
for(int i=0;i<b.length;i++)
{
sop(b[i]);
}
//将基本数据转换成字符串
String s5=new String();
int i=358;
char c ='q';
sop(s5.valueOf(i));
sop(s5.valueOf(c));

}
public static void sop(Object obj)
{
System.out.println(obj);
}
}



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<arr.length;i++)
{
sop(arr[i]);
}
String[] arr1=s3.split("m");
for(int j=0;j<arr1.length;j++)
{
sop(arr1[j]);
}
//获取字符串中的一部分
String s4="hellow java";
sop(s4.substring(2,9));
sop(s4.substring(2));
//将字符串转换成大写和小写,并去除两端的空格
String s5=" ARRAYlistTest.JavA ";
sop(s5.toUpperCase());//转换成大写
sop(s5.toLowerCase());//转换成小写
sop(s5.trim());
String s6=s5.toUpperCase();
sop(s6.trim());
//对两个字符串的自然顺序进行比较
sop(s5.compareTo(s4));

}
public static void sop(Object obj)
{
System.out.println(obj);
}
}



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<arr.length;x++)
{
sop(arr[x]);
}
}
//StringBuffer容器的添加与插入
public static void buffcreate()
{
StringBuffer sb=new StringBuffer();
sb.append("lisi1234568").append("qwerty").append("asdfgh");
sb.insert(4,"f");
sop(sb);
}
//StringBuffer容器的删除
public static void bufferdel()
{
StringBuffer sb=new StringBuffer();
sb.append("lisi1234568").append("qwerty").append("asdfgh");
//sb.delete(0,sb.length());//删除sb容器中的全部数据
sb.deleteCharAt(3);//删除指定位置的字符
sop(sb);
}
//StringBuffer容器的获取
public static void bufferget()
{
StringBuffer sb=new StringBuffer();
sb.append("lisi1234568").append("qwerty").append("asdfgh");
sop(sb.charAt(3));//得到容器中指定位置的值
sop(sb.indexOf("i"));//返回指定值在容器中第一次出现的位置
sop(sb.lastIndexOf("i"));//反向返回指定值在容器中第一次出现的位置,即倒过来第一次出现的位置
sop(sb.substring(0,4));//得到该容器中指定的字符串,包含头不包含尾
}
//StringBuffer容器的修改
public static void bufferupdate()
{
StringBuffer sb=new StringBuffer();
sb.append("lisi1234568").append("qwerty").append("asdfgh");
sop(sb);
sop("替换后");
sb.replace(0,4,"ggggg");//使用给定的字符串替换容器中的子串,包含头不包含尾
sop(sb);
sop("设置后");
sb.setCharAt(4,'f');//修改指定位置的值
sop(sb);
}
//StringBuffer容器的反转
public static void bufferreverse()
{
StringBuffer sb=new StringBuffer();
sb.append("lisi1234568").append("qwerty").append("asdfgh");
sop(sb.reverse());
}

public static void sop(Object obj)
{
System.out.println(obj);
}
}

基本数据包装类

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<Object> st =  prop.keySet();
Iterator<Object> is= st.iterator();
while(is.hasNext())
{
String key=(String)is.next();
String value=(String)prop.get(key);
System.out.println(key+"::"+value);
}*/
//方法二
/*System.out.println(":-----------------------------------:");
for(Object obj:prop.keySet())//冒号前代表容器中的类型,冒号后代表容器
{
String value=(String)prop.get(obj);
System.out.println(obj+"::"+value);
}*/

}
public static void sop(Object obj)
{
System.out.println(obj);
}
}

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文档要多看看,会有很多惊喜的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: