Java常用的类

Scanner:

常用成员方法:

  • hasnext():判断是否存在输入。(boolean)
  • hasNextxxx():判断从指定的输入流中是否有下个指定 xxx 类型的数据。(要求输入一个相应的数据类型) (boolean)
  • nextxxx():从指定的输入流中读取下个指定 xxx 类型的数据,读取时会忽略前面的空格字符,next():输入字符串

 System (常用的类方法):

  • static long currentTimeMillis():返回以毫秒为单位的当前时间(主要适用于计算某段代码的运行的时间)注:这个是距离1970年1月1日0时的时间。
  • static void exit(int code):退出虚拟机操作,0 正常退出,-1 异常退出。 (这个退出是退出整个程序,所以下边的打印语句是不会被执行的。注意与break的区别。)
  • static void arraycopy(Object src, in srcPos, Object dest, int descPos, int length): 将 src 数组对象中的 srcPos 位置开始,将数组元素拷贝到数组对象 dest 中,从数组对象的 descPos 开始拷贝,拷贝的元素的个数由 length 参数确定。length 参数不要超过从指定位置 srcPos 到数组对象 src 最后一个位置的长度,否则抛出数据越界异常。

Object:

  • clone():返回object类.
    Object 这个类提供的 clone 方法用于实现对象的复制,复制的对象需要两个准备工作:
    1、要 clone 的类实现标识接口 Cloneable,表示该对象可以支持复制操作。
    2、将从父类中继承的 clone 方法暴漏出来,因为 clone 方法在 Object 类中是 protected 修饰的。
    clone 方法的执行操作就是将 beauty对象中所有的成员变量值全部复制一遍,再放到 clone 对象中保存,对 于beauty 对象中的基本数据类型,复制的是具体的值,而对于引用类型来说仅仅是复制了地址值而已, 所以cat的地址是相同的。两个复制的beauty对象之间的地址是不同的。
import sun.font.FontRunIterator;
class cat implements Cloneable{
    public void say01(){
        System.out.println("chkbeb");
    }
    protected Object clone() throws CloneNotSupportedException{
        return super.clone();
    }
}
class beauty implements Cloneable{
    private cat cat;
    private String name;
    protected Object clone() throws CloneNotSupportedException{
        return super.clone();
    }
    public beauty(String name,cat cat){
        this.cat = cat;
        this.name = name;
    }
    public void say(){
        System.out.println("kvbfbuib");
    }
    public cat getcat(){
        return cat;
    }
}
public class day01 {
    public static void main(String[] args) throws CloneNotSupportedException {
        cat cat = new cat();
        beauty b = new beauty("张三",cat);
        b.say();
        beauty c = (beauty) b.clone();
        System.out.println(b==c);//false
        System.out.println(b.getcat()==c.getcat());//true
    }
}
  • getClass():返回运行时的类,返回值的类型时Class.

 Random:

  • int nextInt(int n):返回该类型(double等)的一个随机数。返回的范围是[0,n)范围内的随机数 
  • int nextInt():返回该类型的一个随机数。返回的范围是 int 范围内的随机数

 Math:

  • static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
  • static int abs():返回该类型的绝对值
  • static int round():返回最接近参数的 int值。对于正数,从5开始往前加(四舍五入),对于负数,从6开始往前加

 BigDecimal:(解决精确度的问题)

  • BigDecimal 类提供了 add()、subtract()、multiply()、divide()、pow(int n)(幂运算)、等方法对精确浮点数进行常规算术运算
  • 常见问题:
  • 举例:
  • roundingMode(进制模板):

 String:

构造方法:

  • public String() :初始化新创建的 String 对象,以使其表示空字符序列。
  • public String(“xxx”) :初始化新创建的 String 对象,以使其表示”xxx”字符序列。
  • public String(char[] value) :通过当前参数中的字符数组来构造新的 String。
  • public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的 String。
  • public String(byte[] bytes, Charset charset) :通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String

  注:方法都是存在方法区里面,方法里的常量在常量池里面。

字符串转换:

 常用方法:

  • public int length () :返回此字符串的长度。
  • public String concat (String str) :将指定的字符串连接到该字符串的末尾。
  • public char charAt (int index) :返回指定索引处的 char 值。
  • public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。 (返回的是第一个字符的索引)
  • public int lastIndexOf (String str) :返回指定子字符串最后一次出现在该字符串内的索引。
  • public String substring (int beginIndex) :返回一个子字符串,从 beginIndex 开始截取字符串到字符串结尾。
  • public String substring (int beginIndex, int endIndex) :返回一个子字符串,从 beginIndex 到 endIndex截取字符串。含 beginIndex,不含 endIndex。
  • public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
  • public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写
  • public boolean contains(CharSequence s) :当且仅当此字符串包含指定的 char 值序列时,返回 true。
  • public boolean endsWith(String suffix) : 测试此字符串是否以指定的后缀结束。
  • public boolean startsWith(String prefix) : 测试此字符串是否以指定的前缀开始。
  • public boolean startsWith(String prefix,int toffset) : 测试此字符串是否以指定的前缀开始。
  • public char[] toCharArray () :将此字符串转换为新的字符数组。
  • public byte[] getBytes () :使用平台的默认字符集将该 String 编码转换为新的字节数组。
  • public String replace (CharSequence target, CharSequence replacement) :将与 target 匹配的字符串使用replacement 字符串替换。 (默认是全部代替)(这是不用正则表达式)
  • public staitc String copyValueOf(char[] data) : 返回指定数组中表示该字符序列的 String。
  • public staitc String copyValueOf(char[] data, int) : 返回指定数组中表示该字符序列的 String。
  • publc String toLowerCase() : 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
  • public String toUpperCase(): 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
  • public String trim() : 返回字符串的副本,忽略前导空白和尾部空白
  • public String[] split(String regex) :将此字符串按照给定的 regex(规则)拆分为字符串数组
  • 共性:每个方法应该都会有从第几个开始查找的参数。

升序排列:

 降序排列:

compareTo:返回的是int值,这个是左边的-右边的,对于字符串,依次比较其unicode编码

空字符串:

 

 字符包装类:

StringBuffer和StringBuider:

作用:多用于对字符串的修改

构造方法(StringBuider为例,自动扩容):

  1. String Builder() : 构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。
  2. StringBuilder(String str) : 构造一个字符串生成器,它包含与指定的 str 相同的字符。该字符串生成器的初始容量为 16 加上字符串参数的长度。
  3. StringBuilder(int capacity) : 构造一个不带任何字符的字符串生成器,其初始容量由 capacity 参数指定

常用成员方法(具有和String常用的方法外):

  1. public String toString():返回字符串(实现字符串与其的转换)。
  2. public StringBuilder append(xxx xx) : 将 xx 参数的字符串表示形式追加到序列。
  3. public StringBuilder delete(int start, int end) : 移除此序列的子字符串中的字符。
  4. public StringBilder deleteCharAt(int index) : 移除此序列指定位置上的 char。
  5. public StringBuilder insert(int offset, xxx xx) : 将 xx 参数的字符串表示形式插入此序列中。
  6. public StringBuilder replace(int start, int end, String str) : 使用给定 String 中的字符替换此序列的子字符串中的字符。
  7. public StringBuilder reverse() : 将此字符序列用其反转形式取代。
  8. public void setCharAt(int index, char ch) : 将给定索引处的字符设置为 ch。
  9. public void setLength(int newLength) : 设置字符序列的长度。 (截取字符串)

注:insert插入的时候,在其后面的所有值的所以都会加一;

import javafx.scene.chart.PieChart;
import java.util.Date;
import java.util.Random;
//在"eciwueckccbieuewiuk"字符串里面每个2个字符随机插入一个"1235565656"种的字符
public class string {
    public static void main(String[] args) {
        String s = "1235565656";
        String c = "eciwueckccbieuewiuk";
        Random random = new Random();
        //转化成stringbuider
        StringBuilder stringBuilder = new StringBuilder(c);
        int index = 2;
        while(index<stringBuilder.length()){
            char randomchar = s.charAt(random.nextInt(s.length()));//[0,n);
            stringBuilder.insert(index, randomchar);
            index = index+3;
        }
        if(index == stringBuilder.length()){
            stringBuilder.insert(index, s.charAt(random.nextInt(s.length())));
        }
        System.out.println(stringBuilder.toString());
    }

}

Data:

构造方法:

  • public Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public Date(long date):分配 Date 对象并初始化此对象,以表示自从标准基准时间, 即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
  • 注意: 由于我们处于东八区,所以我们的基准时间为 1970 年 1 月 1 日 8 时 0 分 0 秒。

 常用成员方法:

  • getTime():返回long型的距离linux元年的毫秒数
  • setTime(long):设置距离linux元年的毫秒数

 Calendar:

获取对象:通过子类的获取:

格式化输出:

 增补:

两者之间的转化:

SimpleDateFormat :(把日期格式化输出)

 DecimalFormat:(数字格式化)

正则表达式:(本质是确定要一个什么样的字符串)

特殊字符含义
()
标记子表达式的开始和结束位置,如果要匹配(或者)使用\( 或者\)
*随便几次
+至少一次
要么一次,要么没有
.代表除换行符之外的任何符号
|(或)二选一

 注意:上面这个表格里面的字符,在正则表达式里面是直接写上去的

预定义字符
解释
\d
0-9
\D
非数字
\s
所有的空白字符,包括空格、制表符、回车符、换页符、换行符
\S
所有非空白字符
\w
所有的单词字符,包括 0~9 所有的数字、26 个英文字母和下画线
\W
所有的非单词字符

 注意:上面这个表格上的所有在正则表达式里面是需要加"\"的;

方括号表达式
解释
[abc]
表示 a、b、c 其中任意一个字符;[gz]标志 g、z 中的任意一个字符
表示范围:-
[a-f],表示 a 到 f 之间的任意字符,范围可以和枚举结合使用,如:[a-fx-z]匹配 a 到 f 或者 x 到 z的任意字符
表示否:^
[^a-f],表示非 a、b、c、d、e、f 的任意字符
表示与:&&
[a-z&&[d-f]],表示 a 到 z 与 df 的集合,d、e 或者 f
[a-z&&[^bc]],a-z 所有的字符除了 bc 之外。
[a-z&&[^d-h]],a-z 所有字符除去 d-h 之间的字符,即 a-c 和 i-z 之间的字符
表示“并”运算
[a-dm-p],即 a-d 所有的字符和 m-p 之间的所有字符

 

 用法:

 正则表达式取代indexof的案例:

  find()是接着上一次的结束坐标继续查找的,因此每次都不用重新指明从那个开始。

 国际化:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值