Java基础之常用类

Posted 敲不完的代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础之常用类相关的知识,希望对你有一定的参考价值。

一、String

1.多个字符组成的一串数据,它可以和字符数组进行相互转换

2.构造方法:
  public String ( )  空构造
  public String (byte[ ] bytes)  把字节数组转成字符串
  public String (byte[ ] bytes,int offset,int length) 把字节数组的一部分转成字符串
  public String (char[ ] value) 把字符数组转成字符串
  public String (char[ ] value,int offset,int count) 把字符数组的一部分转成字符串
  public String (String original) 把字符串常量值转成字符串

3.方法:
    判断功能
    boolean equals(Object obj) 比较字符串的内容是否相同,区分大小写
      例 s1.equals(s2) s1和s2比较
    boolean equalsIgnoreCase(String str) 比较字符串内容是否相同,忽略大小写
      例 s1.equals(s2) s1和s2比较,注意区分大小写
    boolean contains(String str) 判断大字符串中是否包含小字符串
      例 s1.contains("hello") 判断s1中有没有hello这个字符串
    boolean startsWith(String str) 判断字符串是否以某个指定的字符串开头
      例 s1.startWith("h")  判断s1中是否以h开头
    boolean endsWith(String str) 判断字符串是否以某个指定的字符串结尾
      例 s1.endWith("s")  判断s1中是否以s结尾
    boolean isEmpty() 判断字符串是否为空
      例 s1.isEmpty() 判断s1是否为空字符串

  获取功能
    int length() 获取字符串的长度
           例 s.length()
    char charAt(int index) 获取指定位置索引的字符
      例 s.charAt(7) 获取第七个位置的字符(从0开始)
    int indexOf(int ch) 返回指定字符在此字符串中第一次出现的索引
      例 s.indexOf("c") 获取 c 第一次出现的位置
    int indexOf(String str) 返回指定字符串在此字符串中第一次出现的索引
      例 s.indexOf("cake") 获取 cake 第一次出现的位置
    int indexOf(int ch,int fromIndex) 返回指定字符在此字符串中从指定位置后第一次出现处的索引
      例 s.indexOf("c",4) 从第4个索引后获取 c 的索引
    int indexOf(String str,int fromIndex) 返回指定字符串在此字符串中从指定位置后第一次出现处的索引
      例 s.indexOf("cake",4) 从第4个索引后获取 cake 的索引
    String substring(int start) 从指定位置截取字符串,默认到结尾
      例 s.substring(5) 从第5个位置截取字符串
    String substring(int start,int end) 从指定位置开始到结束截取字符串
      例 s.substring(5,8) 从第5个位置截取字符串到第8个结束,不包括第8个字符。(包左不包右)

  转换功能
    byte[ ] getBytes( ) 把字符串转换为字节数组。
      例 byte[ ] bys = s.getBytes( );
    char[ ] toCharArray( ) 把字符串转换为字符数组
      例 char[ ] cha = s.toCharArray();
    static String valueOf(char[ ] chs) 把字符数组转成字符串。
      例 String ss = String.valueOf(cha);
    static String valueOf(int i) 把int类型的数据转成字符串
      例 int y=100;
         String s2= String.valueOf(y);
      String toLowerCase( ) 把字符串转成小写
      例 String s1=s.toLowerCase
    String toUpperCase() 把字符串转成大写
      例 String s1=s.toUpperCase
    String concat(String str) 把字符串拼接
      例 s1.concat(s2) 把s1和s2拼接


  其他功能
      String replace(char old, char new) 替换字符串中的某一个字符
       例 s1.replace("p","u")  把s1中的所有p字符替换成u字符
      String replace(String old, String new) 替换字符串中的字符串
          例 s1.replace("hello","feiji") 把s1中的hello替换成feiji
      String trim() 去除字符串两端空格
         例 s1.trim(); 
      int compareTo(String str) 按字典顺序比较两 个字符串
         例 s1.compareTo(s2);
         把s1和s2比较,一样返回0。
      int compateToIgnoreCase(String str) 按字典顺序比较两个字符串,区分大小写
      例 同上

二、StringBuffer(是同步的,数据安全,效率低)/StringBuilder(单线程使用,不同步,效率高)

1.线程安全的可变字符串。


2.构造方法
  public StringBuffer() 无参构造方法。
  public StringBuffer(int capacity) 指定容量的字符串缓冲区对象。
  public StringBuffer(String str) 指定字符串内容的字符串缓冲区对象。


3.方法
       A:添加功能
    public StringBuffer append(String str)  添加任意类型到字符串杯子中
    public StringBuffer insert(int offset,String str) 在指定位置插入任意类型的数据到杯子中

      B: 删除功能 
    public StringBuffer deleteCharAt(int index) 删除指定位置的一个字符
    public StringBuffer delete(int start,int end) 删除指定区间的所有字符(包左不包右)

     C: 替换功能
    public StringBuffer replace(int start,int end,String str) 替换指定区间的字符串(包左不包右)

     D: 反转功能
     public StringBuffer reverse()  反转字符串,例 abc--cba

     E: 截取功能(注意返回值是String类型的)
    public String substring(int start) 截掉字符串(截掉输入参数之前的所有字符串) 
    public String substring(int start,int end) 截掉区间的字符串(包左不包右)
    public int capacity() 返回当前容量。
    public int length()  返回长度(字符数)。

三、对比StringStringBuffer拼接字符串的效率

package text;

public class Text {
    public static void main(String[] args) {
        String s = "";
        long start_s = System.currentTimeMillis();
        for(int i = 0;i < 10000;i++){
            s += "aaaa";
        }
        long end_s = System.currentTimeMillis();
        System.out.println("String拼接N次用的时间" + (end_s - start_s) + "ms" );
        
        StringBuffer ss = new StringBuffer();
        long start_ss = System.currentTimeMillis();
        for(int i = 0;i < 10000;i++){
            ss.append("aaaa");
        }
        long end_ss = System.currentTimeMillis();
        System.out.println("StringBuffer拼接N次用的时间" + (end_ss - start_ss) + "ms" );
    }
}

四、Math

1.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

2.成员方法
  public static int abs(int a)  返回 int 值的绝对值。
  public static double ceil(double a)  向上取整
  public static double floor(double a) 向下取整
  public static int max(int a,int b)   比较两个数的最大值
  public static double pow(double a,double b)  a的b次幂
  public static double random()  随机数
  public static int round(float a) 四舍五入
  public static double sqrt(double a)  正平方根

例子:因为都为静态的,所以直接Math.方法用即可

package text;

public class Text {
    public static void main(String[] args) {
        System.out.println(Math.E);  //输出值为:2.718281828459045
        System.out.println(Math.PI); //输出值为:3.141592653589793
        System.out.println(Math.abs(-123));//输出值为:123,绝对值
    }
}

五、Random

1.此类用于产生随机数

2.构造方法

  public Random()  没有给种子,用的是默认种子,是当前时间的毫秒值。
    例 Random r = new Random();
  public Random(long seed)  给出指定的种子,给出种子后每次得到的随机数是相同的
    例 Random r = new Random(1201);

3.成员方法

  public int nextInt() 返回的是int范围内的随机数
    例 r.nextInt()  返回一个int范围内的随机数
  public int nextInt(int n) 返回的是【0,n】范围内的随机数
    例 r.nextInt(10) 返回0到10以内的随机数

例子1:

package text;

import java.util.Random;

public class Text {
    public static void main(String[] args) {
        Random r = new Random();
        int a = r.nextInt(10);
        System.out.println(a);//返回值为0~10内的随机一个数
    }
}

例子2:

package text;

import java.util.Random;

public class Text {
    public static void main(String[] args) {
        for(int i=0;i<10;i++){   //for循环,循环10次,每次输出一个0~10的随机数
            Random r = new Random();
            int a = r.nextInt(10);
            System.out.println(a);
        }    
    }
}

六、Date

1.Date 表示特定的瞬间,精确到毫秒

2.构造方法

  public Date() 根据当前的毫秒值创建日期对象
  public Date(long date) 根据给定的毫秒值创建日期对象

3.成员方法
  public long getTime()  获取当前时间
  public void setTime(long time)  设置时间

七、DateFormat

1.DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
  是抽象类,所以使用其子类SimpleDateFormat

2.SimpleDateFormat(可以把日期转换成String类型)

3.构造方法
  public SimpleDateFormat() 默认模式
  public SimpleDateFormat(String pattern)
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss")
4.成员方法
  public final String format(Date date) 把日期格式转换成String类型
  public Date parse(String source)  把给定的字符串解析成日期格式

例子:

package text;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFormatUtil {
    public static String dateToString(Date date){  //见名知意,日期转字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        return sdf.format(date);    
    }
    
    public static Date stringToDate(String str){   //见名知意,字符串转日期
        Date d = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            d = sdf.parse(str);
        } catch (ParseException e) {    
            e.printStackTrace();
        }
        return d;
    }
}
package text;

import java.util.Date;

public class Text {
    public static void main(String[] args) {
        
        Date d = new Date();
        System.out.println(DateFormatUtil.dateToString(d)); //输出值为:2017年07月23日 14:55:23
        
        String ss = "2015-07-23";
        System.out.println(DateFormatUtil.stringToDate(ss)); //输出值为:Thu Jul 23 00:00:00 CST 2015
    }
}

八、Calendar

1.Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转  换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

2.成员方法
  public static Calendar getInstance()  获取当前时间
  Calendar c = Calendar.getInstance;

  public int get(int field) 返回给定日历字段的值。
  public void add(int field,int amount)  根据给定的日历字段和对应的时间,来对当前的日历进行操作
  public final void set(int year,int month,int date) 设定当前的日历时间

以上是关于Java基础之常用类的主要内容,如果未能解决你的问题,请参考以下文章

Java基础之常用类及方法

Java基础之常用类

java基础之XML

大数据基础之java常用API一

Java语言基础之方法的设计

JAVA基础知识之IO——Java IO体系及常用类