java笔记---常用的API

来源:互联网 发布:淘宝上的正品足球鞋店 编辑:程序博客网 时间:2024/06/06 02:57

一:基本数据类型包装类

1.1为了方便基本类型的数据做更多的操作,java就针对每种基本类型的数据给出了对应的类类型。

  这就是我们说的基本类型的包装类。

  基本类型 类类型

  byte Byte

  short     Short

  int Integer

  long Long

  float     Float

  double Double

  char Character

  boolean Boolean

1.2 Integer类型

1.2.1

字段:

最大值:MAX_VALUE

最小值:MIN_VALUE

package com.edu.integer;

例:

/**

需求1:我有一个数据,请问如何判断是否是int范围内的呢?

int范围-2^31~2^31-1*/

public class IntegerDemo {

public static void main(String[] args) {

//判断下面定义的值是否在int数据类型的范围内

int i = 100000000;

//输出int类型的最大值和最小值的范围

System.out.println(Integer.MAX_VALUE);

System.out.println(Integer.MIN_VALUE);

//使用if语句进行判断

if (i>=Integer.MIN_VALUE&&i<=Integer.MAX_VALUE) {

System.out.println("该数值在int的范围内");

} }

 

1.2.2

构造方法:(注意:这里的字符串必须是由数字组成的字符串)

  Integer(int value)

Integer(String s)

1.2.3

各种成员方法:

转换为二进制:toBinaryString(int i)

转换为八进制:toOctalString(int i)

转换为十六进制:toHexString(int i)

例:

package com.edu.integer;

/**需求2:一个数据,得到该数据的二进制,八进制,十六进制如何实现呢?*/

public class IntegerDemo2 {

public static void main(String[] args) {

//求出该数据的二进制,八进制,十六进制

int i = 100;

String i2 = Integer.toBinaryString(i);

System.out.println(i2);

System.out.println("---------------");

String i8 = Integer.toOctalString(i);

System.out.println(i8);

System.out.println("-----------------"); 

String i16 = Integer.toHexString(i);

System.out.println(i16);

}

}

 

 

1.2.4

  intString类型的相互转换:

  int -- String

方式1

String s = 100 +"";

方式2:

   String.valueOf(int)

方式3

Integer.toString(100);

  String -- int

方式1

   Integer.parseInt(String)

 

1.2.5

   JDK5的新特性:

   自动装箱:基本类型 -- 包装类类型

   Integer.valueOf(100)

   自动拆箱:包装类类型 -- 基本类型

   i.intValue()

 

2:Character类的讲解

2.1

  Character:Character 类在对象中包装一个基本类型 char的值

  此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然

  构造方法:

   public Character(char value)

 

2.2

 成员方法

 public static boolean isUpperCase(char ch) 判断是否是大写字符

 public static boolean isLowerCase(char ch) 判断是否是小写字符

 public static boolean isDigit(char ch) 判断是否是数字

 public static char toUpperCase(char ch) 转成大写

 public static char toLowerCase(char ch) 转成小写

 

2.3

  需求:键盘录入一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)

package com.edu.character;

import java.util.Scanner;

public class CharacterTest {

public static void main(String[] args) {

//1.创建键盘录入对象,录入数

Scanner sc = new Scanner(System.in);

//1.2 录入字符串数据

String str = sc.nextLine();

//2.将字符创转换为字符数组

char[] chs = str.toCharArray();

//3.遍历数据拿出每一个字符进行if判断

int bigChar = 0;

int smallChar = 0;

int number = 0;

for (int i = 0; i < chs.length; i++) {

//System.out.println(chs[i]);

if (Character.isUpperCase(chs[i])) {

bigChar++;

}

if (Character.isLowerCase(chs[i])) {

smallChar++;

}

if (Character.isDigit(chs[i])) {

number++;

}

}

System.out.println("大写字符出现的次数"+bigChar);

System.out.println("小写字符出现的次数"+smallChar);

System.out.println("数字字符出现的次数"+number);

}

}

 

 

3. Math:用于执行数学运算的类。

  3.1

  成员方法:

  public static int abs(int a)

  public static double ceil(double a)

  public static double floor(double a)

  public static int max(int a,int b) min自学

  public static double pow(double a,double b)  ab次方

  public static double random()

  public static int round(float a) 参数为double的自学

  4.Object:是所有类的根类。所有的类都直接或者间接的继承自该类

   4.1

   创建学生对象打印学生对象的地址值(本质上是将地址通过哈希算法算出的哈希值)

   同一个对象的哈希值肯定是一样的。

   哈希值相同的对象的地址值未必一样。

   新华字典,zhu -- 456(哈希值)  --(第三个),朱(5),珠(9)

   4.2

   为什么重写toString()方法

   默认情况下,打印的是对象的字符串表示,意义不大。

   包名...类名+@+该对象的哈希值的十六进制

   所以,我们建议,所有子类重写该方法。

   至于如何重写,你就不要问了,自动生成即可。

   表示该对象的数据:

   [类名 成员变量1=数据值1,成员变量2=数据值2,...]

   

   4.3

equals():

默认情况下,比较的是地址值。没有意义。

所以,建议子类重写该方法。

至于如何重写,你就不要问了,自动生成即可。

这个生成的方法作用是比较对象的成员变量值是否相同。

   4.4

   ==equals()的区别?

A:==的作用

a:基本类型 数据值

b:引用类型 地址值

B:equals()

只能比较引用类型。默认比较地址值。

如果重写后,是按照重写后的规则进行的。

  5.

  5.1

  Scanner:帮助我们从键盘获取数据。

  构造方法:

   Scanner(InputStream source)

   Scanner sc = new Scanner(System.in);

   System.in inSystem类下面的一个静态的成员变量。

   现在我们并不知道in这个成员变量的数据类型。

请看一下伪代码:

   Scanner {

   public Scanner(InputStream in){}

   }

   System {

   public static final InputStream in;

   }

   InputStream System.in

  成员方法:

   int nextInt():获取int类型的数据

   String nextLine():获取String类型的数据

  InputMismatchException:输入的数据和最终的结果类型不匹配。  

  5.2

  当为同一个Scanner对象,数据的输入顺序问题:

  String,String

  String,int

  int,int

  int,String

  出现的问题:

   intString就出现了问题。

  解决:

   A:我把所有的数据都按照String来拿。

   String s1

   String s2

   String s3

    B:重新创建一个新的对象。

6.

  Random:用于产生随机数的类。和种子相关(种子其实可以把它看成一个产生随机数的定义的规则)。

  构造方法:

   Random():没有指定种子,采用的是默认种子。

   Random(long seed):可以指定种子。种子相同,产生的随机数就相同。

  得到1-100之间的随机数:

   new Random().nextInt(100) + 1

 7.

  System:

  System 类包含一些有用的类字段和方法。它不能被实例化。

  成员方法:

  public static void exit(int status):终止当前正在运行的 Java 虚拟机。根据惯例,非0 的状态码表示异常终止。

  public static long currentTimeMillis():获取当前时间的毫秒值。

  public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):复制数组

  参数一:要复制的源数组

  参数二:从源数组那个索引开始复制

  参数三:需要复制到哪个数组中

  参数四:从哪个索引开始进行覆盖

  参数五:需要覆盖几个元素

8.Date

  Date:Date表示特定的瞬间,精确到毫秒。

  构造方法:

   Date():默认获取的是当前的日期时间

   Date(long date):把当前日期按照指定的毫秒值进行设定

  成员方法:

   public long getTime():获取日期对象的毫秒值

   public void setTime(long time):设置日期对象的毫秒值

9.DateFormat(格式化和解析日期对象)

9.1

  格式化:

   Date -- String

   201592715:14:23

  

   String format(Date d)

  

  解析:

   String -- Date

   "2015-12-12"

  

   Date  parse(String s)

 

 

 构造:

 SimpleDateFormat()用默认的模式格式化日期对象

 SimpleDateFormat(String pattern):用给定的模式格式化日期对象

 例如:

 yyyyMMddHH:mm:ss

 yyyy-MM-dd HH:mm:ss

 成员方法:

 public final String format(Date date)将一个 Date 格式化为日期/时间字符串

 public Date parse(String source)throws ParseException从给定字符串的开始解析文本,以生成一个日期对象

 9.2

 日期工具类DateUtils

 需求:

  1.让外界无法创建这个类的对象

  2.设置的方法直接可以通过类名调用

  3.可以获取 yyMMdd

  4.可以获取 HH:mm:ss

  5.可以获取 yy-MM-dd HH:mm:ss

 9.3

 案例:

 键盘录入出生日期,算一下你来到这个世界多少天?

package com.edu09;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

public class Test {

public static void main(String[] args) throws ParseException {

//键盘录入出生年月日

    Scanner sc=new Scanner(System.in);

    System.out.println("请输入你的出生年月日(例如1996-02-02):");

    String line=sc.nextLine();

    //把字符串转换为一个日期

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

    //解析这个年月日

    Date d=sdf.parse(line);

    //通过这个日期得到一个毫秒值

    long mytime=d.getTime();

    //获取当前毫秒值

     long nowtime=System.currentTimeMillis();

     //用减法计算相差的毫秒值

     long time=nowtime-mytime;

     long day=time/1000/60/60/24;

     System.out.println("你来到这个世界:"+day+"");

 

}

}

 

 

 10.

 10.1

  Calendar:它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR等 日历字段之间的转换提供了一些方法

  

  Calendar(日历类) -- 获取年,获取月,获取日,获取时,获取分,获取秒。

   public int get(int field):返回给定日历字段的值

 10.2

  需求:获取当前时间的5年后的3个月前的7天后。

  public void add(int field,int amount):根据amount修改field的值

  public void set(int year,int month,int date):设置当前日历的年月日

package com.edu.calendar;

import java.util.Calendar;

public class CalenderDemo2 {

public static void main(String[] args) {

//创建日历对象

//需求:获取当前时间的5年后的3个月前的7天后。

Calendar c = Calendar.getInstance();

//c.add(Calendar.YEAR, 5);

//c.add(Calendar.MONTH, -3);

//c.add(Calendar.DATE, 7);

//public void set(int year,int month,int date):设置当前日历的年月日

c.set(2011, 2, 2);

//获取年份

System.out.println(c.get(Calendar.YEAR));

//获取月份

System.out.println(c.get(Calendar.MONTH)+1);

//获取日期

System.out.println(c.get(Calendar.DATE));

}

}

 

 

 10.3

例: 键盘录入年份,获取任意一年的二月有多少天

package com.edu.calendar;

import java.util.Calendar;

import java.util.Scanner;

public class CalendarTest {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

//1.获取键盘录入的年份

int year = sc.nextInt();

//2.将日历设置成录入年份的31

Calendar c = Calendar.getInstance();

c.set(year, 2,1);

//3.将日期字段向后推1

c.add(Calendar.DATE, -1);

//4.获取此时的日期字段值

System.out.println("二月份有"+c.get(Calendar.DATE)+"");

}

}

 

 

 11. 正则表达式:

 11.1

  正则表达式:符合一定规则的字符串

  案例:(用正则和代码两种方式实现)

   键盘录入qq号码,校验QQ号码。

  需求:

   1:要求必须是5-15位数字

  2:0不能开头

 package com.edu_01;

import java.util.Scanner;

public class RegexDemo {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

// 键盘录入qq号码

System.out.println("请输入您的qq号码");

// 获取录入数据

String qq = sc.nextLine();

// 创建方法进行判断(代码逻辑实现)

//System.out.println(isCheck(qq));

//创建方法,里面使用正则表达式实现

System.out.println(isCheck2(qq));

}

private static boolean isCheck2(String qq) {

//定义正则表达式

String reg = "[1-9][0-9]{4,14}";

return qq.matches(reg);

}

private static boolean isCheck(String qq) {

boolean flag = true;

if (qq.length() >= 5 && qq.length() <= 15) {

// 长度满足要求,看看是否是以0开头的

if (!qq.startsWith("0")) {

// 不是以0开头的,再看是不是每一个都是数字

char[] chs = qq.toCharArray();

for (int i = 0; i < chs.length; i++) {

if (Character.isDigit(chs[i])) {

// 是数字

} else {

flag = false;

}

 

}

 

} else {

flag = false;

}

 

} else {

flag = false;

}

return flag;

}

 

}

 

 

 

 11.2

规则字符在java.util.regex Pattern类中

 

A:字符

x 字符x(举例:a,1)

\\ 反斜线字符

B:字符类

[abc] abc(简单类)

[^abc] 任何字符,除了 abc(否定)

[a-zA-Z] a zA Z,两头的字母包括在内(范围)

[0-9] 0-9字符

C:预定义字符类

. 任何字符

\d 数字:[0-9]

\w 单词字符:[a-zA-Z_0-9]

D:Greedy 数量词

X? X,一次或一次也没有

X* X,零次或多次

X+ X,一次或多次

X{n} X,恰好 n

X{n,} X,至少 n

X{n,m} X,至少 n次,但是不超过 m次  

  11.3

   判断功能:

   public boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。  

   需求1:找出规则,写出正则(1[38][0-9]{9}),校验电话号码

      13245678901 13332345678 13456789012 18812345678 18999999999

  18666666666 18786868686

package com.edu_02;

public class RegexDemo {

public static void main(String[] args) {

//定义正则表达式

String reg = "1[38][0-9]{9}";

//System.out.println("键盘输入电话号码");

String number = "13245678901";

System.out.println(number.matches(reg));

}

}

 

 

  

  11.4

   分割功能

  public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。   

   需求1

   分割如下字符串:

   String s = "aa,bb,cc";

   String s2 = "aa.bb.cc";

   String s3 = "aa bb cc";

   String s4 = "aa   bb                     cc";

   String s5 = "D:\\baidu\\20150826\\day14";

 package com.edu_03;

public class RegexDemo {

public static void main(String[] args) {

 String s = "aa,bb,cc";

 String reg = ",";

 String[] strS = s.split(reg);

 for (int i = 0; i < strS.length; i++) {

System.out.println(strS[i]);

}

 System.out.println("--------------------");

 String s2 = "aa.bb.cc";

 String reg2 = "\\.";

 String[] strS2 = s2.split(reg2);

 for (int i = 0; i < strS2.length; i++) {

System.out.println(strS2[i]);

}

 

 System.out.println("-------------------------");

 String s3 = "aa bb cc";

 String reg3 = " ";

 String[] strS3 = s3.split(reg3);

 for (int i = 0; i < strS3.length; i++) {

System.out.println(strS3[i]);

}

 

 System.out.println("-----------------");

 String s4 = "aa   bb                     cc";

 String reg4 = " +";

 String[] strS4 = s4.split(reg4);

 for (int i = 0; i < strS4.length; i++) {

System.out.println(strS4[i]);

}

 System.out.println("--------------------");

 String s5 = "D:\\baidu\\20150826\\day14";

 String reg5 = "\\\\";

 String[] strS5 = s5.split(reg5);

 for (int i = 0; i < strS5.length; i++) {

System.out.println(strS5[i]);

}

}

 

}

 

 

  11.5

   替换功能

   public String replaceAll(String regex,String replacement):把符合regex的用replacement替换

   需求:字符串中的数字使用*代替

package com.edu_04;

public class RegexDemo {

public static void main(String[] args) {

String s = "我的银行卡号是:6103320894945843";

String reg = "\\d";

String newStr = s.replaceAll(reg, "*");

System.out.println(newStr);

}

 

}

 

 

0 0
原创粉丝点击