zoukankan      html  css  js  c++  java
  • java:常用类(包装类,equals和==的比较,Date,java.lang.String中常用方法,枚举enum)

    *包装类: 将基本类型封装成类,其中包含属性和方法以方便对象操作。
    *byte---->Byte
    *short--->Short
    *long--->Long
    *float--->Float
    *double--->Double
    *boolean--->Boolean
    *int--->Integer
    *char---->Character
    * 装箱:将基本数据类型转换成包装类型。
    * 拆箱:将包装类型转换成基本数据类型。
    * 从JDK1.5之后支持自动装箱和拆箱。

    public class Test {
        public static void main(String[] args) {
            Integer i = new Integer(123);//装箱
            int i2 = i.intValue();//拆箱
            Integer i3 = 123;//自动装箱
            int i4=i;//自动拆箱
            System.out.println("Integer的最大值:"+Integer.MAX_VALUE);
            System.out.println("Integer的最小值:"+Integer.MIN_VALUE);
            System.out.println("123对应的二进制为:"+Integer.toBinaryString(123));
            System.out.println("123对应的八进制为:"+Integer.toOctalString(123));
            System.out.println("123对应的十六进制为:"+Integer.toHexString(123));
            Integer i5 = Integer.valueOf("1234");//将一个字符串转换成Integer
            int i6 = Integer.parseInt("1234");
        }
    }

    ==和equals在包装中的比较:

    public class TestString {
        public static void main(String[] args) {
            String str1 = "zzsxt";
            String str2 = "zzsxt";
            String str3 = new String("zzsxt");
            String str4 = new String("zzsxt");
            System.out.println(str1==str2);//true
            System.out.println(str1.equals(str2));//true
            System.out.println(str3==str4);//false
            System.out.println(str3.equals(str4));//true
         System.out.println(str1.equals(str3)); //true
         System.out.println(str1==str3); //false
    } }
    public class Test {
        public static void main(String[] args) {
            Integer i=new Integer(1);
            Integer i2=new Integer(1);
            int i3=1;
            int i4=1;
            System.out.println(i==i2);//false
            System.out.println(i==i3);//true
            System.out.println(i3==i4);//true
            System.out.println(i.equals(i2));//true
            System.out.println(i.equals(i3));//true
            
        }
    }

    *java.lang.String:不可变的字符序列。
    *常用的构造方法
    *String(String original)
    *String()
    *String(char[] value)
    *常用的方法:
    *length():获取字符串的长度
    *charAt(int index):查看指定下标的字符,字符串的下标从零开始
    *toUpperCase():转大写
    *toLowerCase():转小写
    *equals(String s):比较字符串的内容是否相等
    *equalsIgnoreCase(String s):忽略大小写比较内容是否相等
    *indexOf(String s):索引指定字符串s在当前字符串的出现的下标位置,如果查找不到返回-1,如果存在多个将返回第一个字符串的下标位置
    *lastIndexOf(String s):索引指定字符串s在当前字符串的最后出现的下标位置
    *substring(int begin):字符串截取从begin开始截取到最后。
    *substring(int begin,end):字符截取从begin开始,到end-1结束。不包含end位置
    *trim():去掉前后空格,中间空格无法去除。
    *startsWith(String s):测试此字符串是否以指定的前缀开始
    *endsWith(String s):测试此字符串是否以指定的后缀结束

    public class TestString2 {
        public static void main(String[] args) {
            String str=new String("  hello,  zzsxt!  ");
            String str2=new String("Hello,zzsxt!");
            System.out.println("字符串长度:"+str.length());
            System.out.println("下标为3的字符:"+str.charAt(3));
            System.out.println("将字符串转大写:"+str.toUpperCase());
            System.out.println("将字符串转小写:"+str.toLowerCase());
            System.out.println("比较字符串的内容是否相等:"+str.equals(str2));
            System.out.println("忽略大小写比较字符串的内容是否相等:"+str.equalsIgnoreCase(str2));
            System.out.println("索引字符串中的指定字符的第一次出现的位置:"+str.indexOf("a"));//
            System.out.println("索引字符串中的指定字符的最后一次出现的位置:"+str.lastIndexOf("l"));//
            System.out.println("字符串的截取,从指定位置开始截取到最后:"+str.substring(2));//
            System.out.println("字符串的截取,从begin位置开始截取到end-1:"+str.substring(0,5));//
            System.out.println("去掉字符串的前后空格:"+str.trim());//
            System.out.println("测试此字符串是否以指定的前缀开始:"+str2.startsWith("Hel"));//
            System.out.println("测试此字符串是否以指定的后缀结束:"+str2.endsWith("!"));//
            
        }
    }
    public class TestString3 {
        public static void main(String[] args) {
            String str="hello,bjsxt!";
            str=str.replace('!', '.');     // '!' 替换 '.'
            str = str.replace("bjsxt", "zzsxt");  
            System.out.println(str);
           
         String str2
    ="java,html,oralce,mysql"; String[] strs = str2.split(","); //以,号为标准前后转换为数组元素 for (String string : strs) { System.out.println(string); } // String str3 = str.concat(str2);//连接字符串 String str3 = str+str2; //同连接字符串 System.out.println(str3); } }

    * String:不可变的字符序列
    * StringBuffer可变的字符序列,线程安全,在多线程中使用,效率较低。
    * StringBuilder:可变的字符序列,非线程安全的,效率较高。
    *
    * 线程安全:在多线程中使用,类似于信号灯。

    insert:

    import java.util.Scanner;
    
    public class StringB {
        public static void main(String[] args) {
            Scanner input=new Scanner(System.in);
            System.out.println("请输入字符串");
            String s=input.next();
            StringBuffer ss=new StringBuffer(s);
            for(int x=s.length()-3;x>0;x-=3){
                ss.insert(x, ",");
            }
            System.out.println(ss);
        }
    }

    Builder:

    public class TestStringBuilder {
        public static void main(String[] args) {
            StringBuilder sb=new StringBuilder();
            long start = System.currentTimeMillis();
            for (int i = 0; i <1000000; i++) {
                sb.append(i);
            }
            long end = System.currentTimeMillis();
            System.out.println("总耗时:"+(end-start)+"毫秒");
            StringBuffer sb2 = new StringBuffer("hello");
    //        sb2=sb2.delete(2, 4);
            sb2=sb2.reverse();//反转
            System.out.println(sb2);
        }
    }

    java.util.Date:
    *常用的构造方法:
    * Date()
    * Date(int year, int month, int date) 已过时
    * Date(long date)
    *常用的方法:
    *getYear()返回一个值,此值是从包含或开始于此 Date 对象表示的瞬间的年份减去 1900 的结果
    *getMonth()返回表示月份的数字,返回的值在 0 和 11 之间,值 0 表示 1 月。
    *getDate():返回此 Date 对象表示的月份中的某一天。
    *
    *java.text.DateFormat:格式化日期,抽象类
    *java.text.SimpleDateFormat继承DateFormat.
    * SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类
    * yyyy:年,MM:月 dd:日 hh:小时(12进制) HH:小时(24进制) mm:分钟 ss:秒

    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class TestDate {
        public static void main(String[] args) {
            Date date = new Date();
    //        System.out.println(date);
    //        int year = date.getYear();//获取年份
    //        int month = date.getMonth();//获取月份
    //        int day = date.getDate();//获取日期
    //        int hour = date.getHours();//获取小时
    //        int min = date.getMinutes();//获取分钟
    //        int sec = date.getSeconds();//获取秒
    //        String str = year+"-"+month+"-"+day+" "+hour+":"+min+":"+sec;
    //        System.out.println(str);
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String str = dateFormat.format(date);
            System.out.println(str);
        } 
     }

    日期转字符串与字符串转日期:

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class TestDate21 {
        public static void main(String[] args) {
            Date date=new Date();
            DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String s=dateFormat.format(date);
            System.out.println(s); //日期转字符串输出
            
            
            String s2="2018-11-11"; //字符串转为日期
            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
             
             try {
                 Date date2=simpleDateFormat.parse(s2);
                 System.out.println(date.after(date2));//测试date是否在date2之后  false
                 
            } catch (ParseException e) {
                
                e.printStackTrace();
            }
            
            
        }
    }

    日历题:

    * 可视化日历
    * 实现思路:
    * 1.获取用户输入的日期字符串,并将其转换为日期
    * 2.将日期转为日历
    * 3.获取当前月份第一天是星期几?
    * 4.获取当前月份总共有多少天
    * 5.输出日期
    * 当前日期前加*标示,星期六换行。

    public class TestVisualCalendar {
        public static void main(String[] args) {
            //1.获取用户输入的日期字符串
            System.out.println("请输入日期:格式(yyyy-MM-dd)");
            Scanner input = new Scanner(System.in);
            String dateStr = input.next();
            //2.将日期字符串转换为日期
            DateFormat dateFormat =  new SimpleDateFormat("yyyy-MM-dd");
            try {
                Date date = dateFormat.parse(dateStr);
                //将日期转换为日历
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(date);
                int day = calendar.get(Calendar.DATE);//获取当前日期
                //3.获取当前月的第一天是周几
                calendar.set(Calendar.DATE, 1);//将日期设置为1号
                int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);//获取1号是星期几
                //4.获取当前月份总共有多少天
                int dayOfMonth = calendar.getActualMaximum(Calendar.DATE);//获取当前月份的最大天数(当前月总共有多少天)
                //5.输出
                System.out.println("日	一	二	三	四	五	六");
                //输出1号之前的空格
                for(int i=1;i<dayOfWeek;i++){
                    System.out.print("	");
                }
                //输出日期
                for(int i=1;i<=dayOfMonth;i++){
                    //标示当前日期
                    if(i==day){
                        System.out.print("*");
                    }
                    //输出日期
                    System.out.print(i+"	");
                    int w = calendar.get(Calendar.DAY_OF_WEEK);//当前是星期几
                    if(w==Calendar.SATURDAY){//周六换行
                        System.out.println();
                    }
                    calendar.add(Calendar.DATE, 1);//更改当前日期
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
            
        }
    }

    Calendar:

    import java.util.Calendar;
    
    /**
     *java.util.Calendar类:Calendar 类是一个抽象类,可以设置或获取日期中的指定部分。
     *get(int field):返回给定日历字段的值。
     *set(int field, int value) 将给定的日历字段设置为给定值。
     *add(int field, int amount)  根据日历的规则,为给定的日历字段添加或减去指定的时间量。
     *getActualMaximum(int field):返回指定日历字段可能拥有的最大值
     */
    public class TestCalendar {
        public static void main(String[] args) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR, 2016);
            calendar.set(Calendar.MONTH, 2);//3月,月份的取值范围为0~11
            calendar.set(Calendar.DATE, 1);
            calendar.add(Calendar.YEAR, 2);
            int year = calendar.get(Calendar.YEAR);//获取年份
            int month = calendar.get(Calendar.MONTH);//获取月份 0~11
            int date = calendar.get(Calendar.DATE);//获取日期
            int hour = calendar.get(Calendar.HOUR);//小时
            int min = calendar.get(Calendar.MINUTE);//分钟
            int second = calendar.get(Calendar.SECOND);//
            System.out.println(year+"-"+(month+1)+"-"+date+" "+hour+":"+min+":"+second);
            int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);//一年的第多少天
            System.out.println("今天是一年中的第"+dayOfYear+"");
            int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);//一年中第几周
            System.out.println("本周是一年第"+weekOfYear+"");
            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);//一周的第几天,星期天为一周第一天
            System.out.println("今天是一周的第"+dayOfWeek+"");
            
            int max = calendar.getActualMaximum(Calendar.DATE);
            System.out.println(max);
        }
    }

     Math:

    * java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
    * 常用的属性:PI圆周率
    * abs(xxx a):返回 xxx值的绝对值。
    * floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
    * round(double a) 返回最接近参数的 long。四舍五入
    * max(int a, int b) 返回两个 int 值中较大的一个。
    pow(double a, double b) 返回第一个参数的第二个参数次幂的值。
    sqrt(double a) 返回正确舍入的 double 值的正平方根。
    random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

    public class TestMath {
        public static void main(String[] args) {
            System.out.println(Math.abs(-10));
            System.out.println(Math.abs(-10.0));
            System.out.println(Math.floor(12.9));
            System.out.println(Math.round(12.4));
            System.out.println(Math.max(12, 10));
            System.out.println(Math.min(12, 10));
            System.out.println(Math.pow(3,2));
            System.out.println(Math.sqrt(9));
            System.out.println(Math.random());
        }
    }

    Random类:

    * java.util.Random类:此类的实例用于生成伪随机数流.
    * 常用的构造方法
    * Random() 创建一个新的随机数生成器。
    *常用的方法:
    *nextInt():返回一个int类型的随机数
    *nextInt(int n);返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值

    public class TestRandom {
        public static void main(String[] args) {
            Random random = new Random(10);
            for(int i=0;i<10;i++){
    //            int r = random.nextInt();
                int r=random.nextInt(10);
                System.out.println(r);
            }
            
        }
    }

    枚举:

    *定义枚举类型:从JDK1.5之后增加的新特性
    *语法:
    *修饰符 enum 枚举名称{
    * 值1,值2...;
    *}

    public enum Sex {
        男,女
    }
    public class Student {
        private String name;
        private Sex sex;
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Sex getSex() {
            return sex;
        }
        public void setSex(Sex sex) {
            this.sex = sex;
        }
        
        public static void main(String[] args) {
            Student student = new Student();
            student.name="张三";
            student.sex=Sex.男;
        }
    }
  • 相关阅读:
    1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛
    2577 医院设置
    2488 绿豆蛙的归宿
    3315 时空跳跃者的魔法
    1079 回家
    1365 浴火银河星际跳跃
    1074 食物链 2001年NOI全国竞赛
    2596 售货员的难题
    wetask.cn领度任务全新试用体验
    多线程--生产者消费者--简单例子
  • 原文地址:https://www.cnblogs.com/kuangzhisen/p/6991492.html
Copyright © 2011-2022 走看看