您的位置:首页 > 其它

【笔记】常用 API的基本知识以及常用方法

2017-09-04 10:55 381 查看
public class API{

public static void main(String[] args) {

/*-----------字符串的基本知识------------

/*生成对象的两种方式

String strA = "hello";

String strB = new String("hello");//新定义一块内存

String strC = "hello";//将指针直接指向 strA 已拥有的对象,不用再新定义

/*字符串的两种比较方式

System.out.println(strA == strB);//比较地址

System.out.println(strA.equals(strB));//比较内容(有方法可以忽略大小写->验证码)

System.out.println(strA.compareTo("Hello"));//返回两个字符串中第一个不同字符的 ASCII 编码差(同样可以忽略大小写)使用+可以对字符串进行连接操作

在字符串里面有特殊字符,需要转义字符‘\’

字符串的不可变性。当我们执行修改它的时候,会生成新字符串

/*------------String 常用方法1-------------

/*字符串内容判断:

strA.startWith("he")//判断字符是否以 he 开头/同理还有 endWith

/*字符串查找:

strA.contains("ell")//返回布尔值

strA.indexOf("ell")//返回 ell 在 strA 中的位置

strA.indexOf("ell",3)//跳过前3个字符

strA.lastIndexOf("l")//最后出现l的位置

/*字符串截取:

str.substring(4)//截取从第 4 到末尾的字符

str.substring(4,7) //截取从第 4 到第 7 个字符,即包头不含尾

/*字符串替换:

str.replaceFirst("o","-") //替换第一个 o 为-;

str.replaceAll("o","-") //和 replace 效果一样,但是它符合正则

/*字符串拆分:

str.split("") // 按照标准拆分为数组

str.split("",2) // 指定从头拆分为长度为2的数组

/*获取指定下标的字符

str.charAt(4) // 获取下标为 4 的字符

/*获取字符串的长度

str.length() // 汉字算一个字符,和数组长度的区别,数组是属性,字符串是方法

/*判断字符串是否为空

str.isEmpty() // 返回布尔值(也可用长度和 equals 来判断)

/*把字符串转大小写

str.toUpperCase() // 转为大写

str.toLowerCase() // 转为小写

/*去掉字符串中空格

str.trim() 可以去掉两端的空格

/*字符串连接

+ 最常用

str.concat("!"); //参数为后面要加的字符

/*字符串与其他类型相转换

str.toCharArray() //转换为 char 数组(可检查密码中是否有大小写)

String.valueOf(a) //把对象 a 转化为新字符串

/*-----------------包装类的使用------------------------*/

Byte //字节

Short //短整型

Integer //整型

Long //长整型

Double //双浮点型

Float //浮点型

Character //字符型

Boolean //布尔型

包装类可以表示空,基础类型不能表示空

//装箱操作:将基础数据放置到包装类的过程 

int x = 1; 

Integer i1 = new Integer(x); //构造方法

Integer i2 = Integer.valueOf(2) //静态方法 

//拆箱操作

int r1 = i1.intValue;

double r2 = i1.doubleValue;

*注* 

jdk1.5 后可以执行自动装箱和拆箱(也就是不同类型可以混用)

/*包装类的静态属性

Integer.MAX_VALUE //最大值

Integer.MIN_VALUE //最小值

Integer.BYTES //位

Integer.SIXE //int 占用的位

Integer.toBinaryString(int1) //将 int1 转换为二进制数据,以字符串打印

Integer.toHexString(int) //八进制

Boolean.parseBoolean(str) //将 str 转化为 boolean 值(如果 str==“true”,那么就为真)

/*比较

1.看是不是==或 !=来比较的,如果不是,只看内容就行

2.如果是,先看运算符两边是不是对象,如果不都是,比较的也只是内容

3.如果不是,那么看两个引用有没有指向同一个对象

/*--------math 类-----------

/*math 类有 final 所以他不能有子类

Math.PI // π

/*数字舍入

Math.pow(2,3) //次方计算,2的3次方

Math.round(15.5) //四舍五入,得到16,进行整数

Math.round(-15.5) //得到-15对负数进行退位

Math.round(-15.5) //得到-16,以0.5为界

*保留任意位数小数方法*

prublic double accrateRound(double a , int scale){

double temp1 = a * Math.pow(10,scale);

double temp2 = Math.round(temp1);

double result = temp2/Math.pow(10.0,scale);

return result;

}

/*大数字处理

Long.MAX_VALUE // long 的最大表示范围:9223372036854775807

String num1 = "3564566511";

String num2 = "546464646";

BigInteger big1 = new BigInteger(num1);

BigInteger big2 = new BigInteger(num2);

big1.add(big2) //加

big1.subtract(big2) //减

big1.multiply(big2) //乘

big1.divide(big2) //除

BigInteger[] result = big1.divideAndRemainder(big2); //除,并且取余,放在一个数组里

//如果是浮点数(BigDecimal)除法需要重载方法,设定保留小数位数(BigDecimal.ROUND_HALF_UP代表四舍五入)

针对整型小数无法正常表示,可以用大数字来做

*在这做一个浮点乘法方法*

public double accrateMutiply(double a,double b){

String str1 = String.valueOf(a);

String str2 = String.valueOf(b);

BigDecimal big1 = new BigDecemal(str1);

BigDecimal big2 = new BigDecemal(str2);

double result = big1.multiplt(big2).doubleValue();

return result;

}

/*-------Random 类的使用--------

/*创建随机数

Random rd = new Random();

double d = rd.nextDoule(); //范围在0-1之间,可以等于0.

int d1 = rd.nextInt(); //范围是 int 的取值范围

如果有种子(就是构造方法里面的参数),那么产生的数字将固定

可以产生一个随机数数组

1. int[] array = new int[5];

rd.nextInts(array);//可以产生范围为 int 的随机序列

(jdk1.8)2. IntStream is = rd.ints(10,0,100); //产生了一个随机序列,10个,最小值0,小于100。

int[] array = is.toArray(); //转换为数组

/*--------日期时间的学习--------

/*date创建(不提倡使用)

date d1 = new Date(108,7,8,20,0,0)d1.setYear(); // 也可以用

Date d = new Date(); //获得现在的时间

d.getYear() //上面有横线,标示不建议使用。因为他是从1900年当做初始年的

d.getMonth() //有横线,因为月份是从0开始算的

d.getDate() //得到日

d.getHours() //得到时

d.getMinutes() //得到分

d.getSeconds() //得到秒

/*Calendar 创建

Calendar c = Calendar.getInstance();

c.set(2008,7,8,20,8,0);

c.get(Calendar.YEAE); //获得当前的年份

c.get(Calendar.MONTH); //获得当前的月(从0开始)

其余一样

Date d1 = c.getTime(); //将 Calendar 对象赋值给 date;

d1.toString()

/*转换

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

syso(sdf.format(d1));

/*时间戳

d2.getTime() // d2时间到1900.1.1的毫秒数

/*-------集合-----------

/*基本常识

集合中只能存放对象(引用),不能存放基础类型

存到集合中的东西叫做元素

不管集合里面是什么都可以看做是 Object 对象

在使用前都需要将其还原为以前的类型

/*分类

分为三类:列表、映射、集

列表:List

线性、元素致密有序

映射:Map

键值对、键不重复、有自身的排序机制

集:Set

无序、元素不重复

/*实现类

三种集合的接口

List:
ArrayList Vector
LinkesList Stack

Map:
HashTable HashMap
WeakHashMap TreeMap

Set:
HashSet  TreeSet

/*---------List集合----------

/*创建

List al = new ArratList();

Dog dog1 = new Dog();

Dog dog2 = new Dog();

/*存放(增)

al.add(dog1);

al.add(dog2);

al.add(2,dog1);//将一个 dog1 插入到02号位置。但不能超出集合长度

/*获取(查)

(al.get(0)得到的是一个 object 对象,需要强制转换)

Dog d1 = (Dog)al.get(0);

/*取代(改)

al.set(2,new Dog(30)); //用 Dog30 取代02处的对象。/*移除(删)

al.remove(2); //移除02号元素。

al.remove(dog1); //移除dog1元素。

/*其他

(和 Vector 可以互换,区别在于线程安全。ArrayList 线程不安全。Vector 线程安全)

al.clear(); //清空集合

al.isEmpty() //判断集合是否为空,返回布尔值

*/

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  笔记
相关文章推荐