黑马程序员_javaAPI

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);//返回110的随机数

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);//前面是底数,后面是指数,即23次饭

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);//110的随机数,包含1,也包含10

}

}

}


总之API文档要多看看,会有很多惊喜的!



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值