JAVA11_15学习总结(常用类-StringBuffer-Date)

今日内容

1. StringBuffer

StringBuffer类--字符缓冲区
    线程安全的类,支持可变的字符串序列!
    构造方法
        public StringBuffer()
            ---空参构造,初始容量16个字符
        public StringBuffer(int capacity)
            ---有参构造,指定初始容量(不常用)
        public StringBuffer(String str)
            ---将指定的字符串内容构造到字符串缓冲区,容量为16+字符串长度
    int length()
        ---获取字符串缓冲区长度
    int capacity()
        ---获取缓冲区容量大小
StringBuffer的追加和插入
    public StringBuffer append()
        ---将指定类型的内容追加进字符串缓冲区,返回它本身
    public StringBuffer insert(int index,String str/任意类型)
        ---将指定的任意类型的内容插入到指定的位置,返回它本身
StringBuffer的获取功能
    public char charAt(int index)
        ---获取到指定位置的字符串字符
StringBuffer的删除功能
    StringBuffer delete(int start , int end)
        ---删除指定位置开始到指定位置结束的字符
    StringBuffer deleteCharAt(int index)
        ---删除指定位置的字符串字符
StringBuffer的替换功能
    public StringBuffer replace(int start , int end , String str)
        ---用新字符串替换指定位置开始到指定位置结束的字符串
//测试StringBuffer功能
public class StringBufferTest {
    public static void main(String[] args) {
        //追加
        //public StringBuffer append()---在字符串缓冲区末尾追加任意类型数据
        StringBuffer sb = new StringBuffer() ;//无参构造
        String str = "ABCDE" ;
        int i = 10 ;
        char c = '天' ;
        sb.append(str) ;
        sb.append(i).append(c) ;
        System.out.println(sb);//ABCDE10天
        //插入
            //public StringBuffer insert(int index,任意类型数据)---在指定位置插入任意数据
        StringBuffer sb1 = new StringBuffer("ABCDE") ;//指定字符串加进去的构造
        int i1 = 20 ;
        sb1.insert(2,i1) ;//将20插入到角标2的前面
        System.out.println(sb1);//AB20CDE
        //获取
            //public char charAt(int index)---获取指定位的字符串字符
        StringBuffer s2 = new StringBuffer("ABCDE") ;
        //获取角标为2的字符
        System.out.println(s2.charAt(2));//C
        //删除
            //StringBuffer delete(int start , int end)---删除指定位置开始到指定位置结束的字符
            //StringBuffer deleteCharAt(int index)---删除指定位置的字符串字符
        StringBuffer s3 = new StringBuffer("ABCDE") ;
        //删除角标[0-2)的字符
        System.out.println(s3.delete(0,2));//CDE
        //删除角标为2的字符
        System.out.println(s3.deleteCharAt(2));//CD
        //替换
        //public StringBuffer replace(int start , int end , String str)
        StringBuffer s4 = new StringBuffer("ABCDE") ;
        s4.replace(1,4,"bcd") ;
        System.out.println(s4);//AbcdE
        //截取功能和String一样
    }
}
StringBuffer的特有功能--反序
    public StringBuffer reverse()
        ---对字符串进行反序!
import java.util.Scanner;
​
//测试反序
public class StringBufferTest {
    public static void main(String[] args) {
        //判断一个数是不是对称数
        //创建键盘输入
        Scanner sc = new Scanner(System.in) ;
        System.out.println("请输入一组数据:");
        String str = sc.nextLine() ;
        StringBuffer s = new StringBuffer(str) ;
        if(s.reverse().toString().equals(str)){
            System.out.println("是对称数!");
        }else {
            System.out.println("不是对称数!");
        }
    }
}
String--->StringBuffer
    可以通过StringBuffer的有参构造
        String str = "xxx" ;
        StringBuffer sb = new StringBuffer(str)
    可以通过append追加来转换
StringBuffer--->String
    可以通过String构造方法
        String str = new String(Buffer) ;
    可以通过toString来转换
        StringBuffer sb = new StringBuffer("xxx") ;
        String str = sb.toString() ;
String和StringBuffer/StringBuilder的区别?
    String
        是一个常量,一旦被赋值,其值不能被更改 ,不可变的字符序列!
        作为形式参数,形式参数的改变不影响实际参数
    StringBuffer
        支持可变的字符串序列,线程安全的类--->同步的--->执行效率低
    StringBuilder
        和StringBuffer具备相互兼容的API,线程不安全的类---不同步的---->执行效率高
    单线程程序(只考虑效率)中,使用StringBuilder去替代StringBuffer
    多线程环境下(要考虑安全),使用StringBuffer

2. Integer

基本数据类型和引用数据类型关系
    基本数据类型          ---->           引用数据类型
        int             Integer             String
    不同的数据类型有不同的包装类型
Integer
    用来包装int类型数据
        public static final int MAX_VALUE
            ---Integer中的最大值
        public static final int MIN_VALUE
            ---Integer中的最小值
        public static String toBinaryString(int i)
            ---将十进制--转换二进制的字符串形式
        public static String toHexString(int i)
            ---将十进制--转换十六进制的字符串形式
        public static String toOctalString(int i)
            ---将十进制--转换八进制的字符串形式
Integer的构造方法
    public Integer(int value)
        ---将int类型数据包装为Integer类型
    public Integer(String s)throws NumberFormatException
        ---将字符串类型的数字包装Integer类型,若不是数字就会报错
数据转换
    Int--->String
        public static String toString(int index)
            ---静态方法,利用toString
    String--->int
        public static int parseInt(String str)
            ---万能方法,可以转换任何数据类型
//数据类型转换
public class IntegerTest {
    public static void main(String[] args) {
        //String--->int
        String str = "100773429" ;
        Integer.parseInt(str) ;
        System.out.println(str);//100773429
        //int--->String
        int i = 100773429 ;
        Integer integer = new Integer(i) ;
        String str1 = integer.toString();
        System.out.println(str1);//100773429
    }
}

3. Character

Character
    构造方法
        Character(char value)
            ---用来包装char类型
    成员方法
        public static boolean isDigit(char ch)
            ---用来判断是否有数字字符
        public static boolean isLowerCase(char ch)
            ---用来判断是否有小写字母
        public static boolean isUpperCase(char ch)
            ---用来判断是否有大写字母
import java.util.Scanner;
​
//Character判断测试
public class CharacterTest {
    public static void main(String[] args) {
        //键盘录入一个字符串,统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数
        //键盘录入
        Scanner sc = new Scanner(System.in) ;
        //提示输入一段带有小写字母,大写字母,数字的数据
        System.out.println("请输入小写字母,大写字母,数字:");
        String str = sc.nextLine() ;
        //输出输入的字符串
        System.out.println(str.toString());
        //将输入的字符串转变成字符数组
        char[] chars = str.toCharArray();//将字符串转换为字符数组的方法
        //统计数据
        int sumDigit = 0 ;//数字
        int sumLower = 0 ;//小写
        int sumUpper = 0 ;//大写
        //遍历数组+条件判断
        for(int x = 0 ; x < chars.length ; x++){
            //接收每一个字符判断
            char ch = chars[x] ;
            if(Character.isDigit(ch)){ //如果是数字
                sumDigit++ ;//统计次数
            }else if(Character.isLowerCase(ch)){ //如果是小写字母
                sumLower++ ;
            }else if(Character.isUpperCase(ch)){ //如果是大写字母
                sumUpper++ ;
            }else { //有可能输入标点....
                System.out.println("无效内容!");
            }
        }
            //输出结果
        System.out.println("出现数字次数"+sumDigit+"\n"+"出现小写字母的次数"+sumLower+"\n"+"出现大写字母的次数"+sumUpper+"\n");
        /*
         1584adafSHDFGD
            出现数字次数4
            出现小写字母的次数4
            出现大写字母的次数6
         */
    }
}

4. Date

Date
    构造方法
        public Date()
            ---系统时间的日期格式
    成员方法
        public long getDate()
            ---获取指定Date对象的系统时间的毫秒值
类型转换
    让系统时间的日期格式变成方便我们查看的普通格式
    Date--->String日期文本---format方法
        利用DateFormat的子类
            ---SimpleDateFormat
        public final String format(Date date)
        构造方法
            SimpleDateFormat(String pattern)
                ---pattern--格式
                    --y(小写)
                        对应的年--2022-->yyyy
                    --M(大写)
                        对应的月--05-->MM
                    --d(小写)
                        对应的日--08-->dd
    String日期文本--->Date---parse方法
        利用DateFormat的子类
            ---SimpleDateFormat
                SimpleDateFormat(String pattern)
    注意
        String日期文本和转换器SimpleDateFormat内的格式必须"一摸一样"!--不然报错
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
​
//测试转换
public class DateTest {
    public static void main(String[] args) throws ParseException {
        //String日期文本--->Date
        String str = "2000-02-15";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;//格式要一模一样
        //转换parse
        Date date = sdf.parse(str) ;
        System.out.println(date);//Tue Feb 15 00:00:00 CST 2000
        //Date--->String日期文本
        //创建Date对象获取系统时间
        Date date1 = new Date() ;
        //转换器转换
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd") ;
        String str1 = sdf1.format(date1);
        System.out.println(str1);//2022年11月15
    }
}

5. System

System
    不能实例化
    成员方法
        public static long currentTimeMillis():获取系统时间毫秒值(应用场景:计算程序的执行效率)
        public static void exit(int status):参数为0,正常终止jvm
        public static void gc():手动开启垃圾回收器
            ---开启垃圾回收器,会调用Object类的finalize()垃圾回收方法
        public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)  :复制数组
               参数1:原数组
               参数2:原数组中的某个位置
               参数3:目标数组
               参数4:目标数组中的某个位置
               参数5:从原数组的那个位置srcPos指定长度复制到目标数组中

6. Random

Random
    伪随机数生成器
    构造方法
        public Random()
            ---创建新的随机数生成器
        public Random(long seed)
            ---创建新的随机数生成器(以指定的long 的类型计算随机数):每一次均匀分布都一样的 (不推荐)
    成员方法
        public int nextInt()
            ---获取的int类型的取值范围
        public int nextInt(int n)
            ---[0,n)随机数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五目炒饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值