美文网首页
Java基础之常用类库---数字与字符串

Java基础之常用类库---数字与字符串

作者: 从小白到全栈 | 来源:发表于2018-08-16 17:17 被阅读0次

    所有的基本类型,都有对应的类类型

    byte类型封装类Byte,short类型封装类Short,int类型封装类Integer,long类型封装类Long,char类型封装类Character,float类型封装类Float,double类型封装类Double

    public class TestNumber {

        public static void main(String[] args) {

            int i = 5;

            //把一个基本类型的变量,转换为Integer对象

            Integer it = new Integer(i);

            //把一个Integer对象,转换为一个基本类型的int

            int i2 = it.intValue();

        }

    }

    装箱和拆箱

    自动装箱:不需要调用构造方法,通过=符号自动把 基本类型 转换为 类类型 就叫装箱

    public class TestNumber {

        public static void main(String[] args) {

            int i = 5;

            //基本类型转换成封装类型

            Integer it = new Integer(i);

            //自动转换就叫装箱

            Integer it2 = i;

        }

    }

    自动拆箱:不需要调用Integer的intValue方法,通过=就自动转换成int类型,就叫拆箱

    public class TestNumber {

        public static void main(String[] args) {

            int i = 5;

            Integer it = new Integer(i);

            //封装类型转换成基本类型

            int i2 = it.intValue();

            //自动转换就叫拆箱

            int i3 = it;

        }

    }

    int的最大值,最小值可以通过其对应的封装类Integer.MAX_VALUE和Integer.MIN_VALUE

    数字转字符串:

    方法1: 使用String类的静态方法valueOf 

    方法2: 先把基本类型装箱为对象,然后调用对象的toString

    public class TestNumber {

        public static void main(String[] args) {

            int i = 5;

            //方法1

            String str = String.valueOf(i);

            //方法2

            Integer it = i;

            String str2 = it.toString();

        }

    }

    字符串转数字:调用Integer的静态方法parseInt

    public class TestNumber {

        public static void main(String[] args) {

            String str = "999";

            int i= Integer.parseInt(str);

            System.out.println(i);

        }

    }

    数学方法:java.lang.Math提供了一些常用的数学运算方法,并且都是以静态方法的形式存在

    public class TestNumber {

        public static void main(String[] args) {

            float f1 = 5.4f;

            float f2 = 5.5f;

            //5.4四舍五入即5

            System.out.println(Math.round(f1));

            //5.5四舍五入即6

            System.out.println(Math.round(f2));

            //得到一个0-1之间的随机浮点数(取不到1)

            System.out.println(Math.random());

            //得到一个0-10之间的随机整数 (取不到10)

            System.out.println((int)( Math.random()*10));

            //开方

            System.out.println(Math.sqrt(9));

            //次方(2的4次方)

            System.out.println(Math.pow(2,4));

            //π

            System.out.println(Math.PI);

            //自然常数

            System.out.println(Math.E);

        }

    }

     格式化输出:如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐

    使用格式化输出,就可以简洁明了,知道了解就行。

    %s 表示字符串

    %d 表示数字

    %n 表示换行

    public class TestNumber {

        public static void main(String[] args) {

            String name ="盖伦";

            int kill = 8;

            String title="超神";

            //直接使用+进行字符串连接,编码感觉会比较繁琐,并且维护性差,易读性差

            String sentence = name+ " 在进行了连续 " + kill + " 次击杀后,获得了 " + title +" 的称号";

            System.out.println(sentence);

            //使用格式化输出

            //%s表示字符串,%d表示数字,%n表示换行

            String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";

            System.out.printf(sentenceFormat,name,kill,title);

        }

    }

    字符串:字符串即字符的组合,在Java中,字符串是一个类,所以我们见到的字符串都是对象 ,String 被修饰为final,所以是不能被继承的。

    常见创建字符串手段: 

    1. 每当有一个字面值出现的时候,虚拟机就会创建一个字符串 

    2. 调用String的构造方法创建一个字符串对象 

    3. 通过+加号进行字符串拼接也会创建新的字符串对象 

    public class TestString {

        public static void main(String[] args) {

            String garen ="盖伦"; //字面值,虚拟机碰到字面值就会创建一个字符串对象

            String teemo = new String("提莫"); //创建了两个字符串对象

            char[] cs = new char[]{'崔','斯','特'};

            String hero = new String(cs);//  通过字符数组创建一个字符串对象

            String hero3 = garen + teemo;//  通过+加号进行字符串拼接

        }

    }

    字符串常用方法:

    charAt    获取字符

    toCharArray    获取对应的字符数组

    subString    截取子字符串

    split    分隔

    trim    去掉首尾空格

    toLowerCase    全部变成小写 

    toUpperCase    全部变成大写

    indexOf    判断字符或者子字符串出现的位置

    lastIndexOf    判断字符或者子字符串最后出现的位置

    contains    是否包含子字符串

    replaceAll    替换所有的

    replaceFirst    只替换第一个

    判断字符串对象是否相等用==,判断字符串内容是否相等用equals()

    public class TestString {

        public static void main(String[] args) {

            String str1 = "the light";

            String str2 = new String(str1);

            String str3 = str1.toUpperCase();

            //==用于判断是否是同一个字符串对象

            System.out.println( str1  ==  str2);

            System.out.println(str1.equals(str2));//完全一样返回true

            System.out.println(str1.equals(str3));//大小写不一样,返回false

            System.out.println(str1.equalsIgnoreCase(str3));//忽略大小写的比较,返回true

        }

    }

    startsWith //以...开始,endsWith //以...结束

    public class TestString {

        public static void main(String[] args) {

            String str1 = "the light";

            String start = "the";

            String end = "Ight";

            System.out.println(str1.startsWith(start));//以...开始

            System.out.println(str1.endsWith(end));//以...结束

        }

    }

    StringBuffer:StringBuffer是可变长的字符串

    StringBuffer的常用方法:append追加 ,delete 删除 ,insert 插入 ,reverse 反转

    public class TestString {

        public static void main(String[] args) {

            String str1 = "let there ";

            StringBuffer sb = new StringBuffer(str1); //根据str1创建一个StringBuffer对象

            sb.append("be light"); //在最后追加

            System.out.println(sb);

            sb.delete(4, 10);//删除4-10之间的字符

            System.out.println(sb);

            sb.insert(4, "there ");//在4这个位置插入 there

            System.out.println(sb);

            sb.reverse(); //反转

            System.out.println(sb);

        }

    }

    StringBuild:StringBuild也是可变的字符串长度

    大部分情况,StringBuild和StringBuffer方法相同,通过new新建StringBuilder,通过append添加字符串,然后通过toString获取构建完成的字符串。

    StringBuilder sb = new StringBuilder();//创建StringBuild

    sb.append(",探索编程本质");//添加字符串

    System.out.println(sb.toString());//获取构建后的字符串,通过toString方法

    经典面试题:String,StringBuffer,StringBuild有什么区别?(曾经就被阿里的电面问了这个,那个时候还是个小白,没答出来)

    String、StringBuffer与StringBuilder之间区别

    个人觉得这个博客讲得挺明了,初学者都能懂!

    相关文章

      网友评论

          本文标题:Java基础之常用类库---数字与字符串

          本文链接:https://www.haomeiwen.com/subject/wranbftx.html