包装类型,String,记得踩哦

包装类

java提供两种类型
1.基本数据类型
2.引用数据类型:
使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类

基本类型 对应的包装类 (java.lang包)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

装箱和拆箱

什么是装箱和拆箱? 基本数据类型和包装数据类型的来回转换的过程。
1.**装箱:**从基本类型转换为对应的包装类对象。
2.**拆箱:**从包装类对象转换为对应的基本类型。
举例

public class test0 {
    public static void main(String[] args) {
        //基本数值---->包装对象
        Integer i = new Integer(1); //第一种
        //输出为  1
        System.out.println(i);
        Integer integer = Integer.valueOf(4);//第二种
        //输出为 4
        System.out.println(integer);

        //包装对象---->基本数值
        int i2 = i.intValue();
        System.out.println(i2);
    }
}

自动装箱和拆箱

从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可
以自动完成

Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4); 
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;
//加法运算完成后,再次装箱,把基本数值转成对象。

String类

String类代表字符串
string特点

public class test1 {
    public static void main(String[] args) {

        String s="abc";
        s+="s";
        System.out.println(s);//输出为 abcs
        /**
         *  public final class String(string底层是final修饰的,final修饰的属性不能改变)
         *  也就是说String是常量,定义后值不能改变
         *
         *  为什么上面输出后结果变了呢?
         *  String的值存放在常量池里,现在常量池里有两个对象(abc和abcs)
         *  s从指向"abc",改变指向,指向了"abcd"。
         */

         String s1="abc";
         //相当于
        char data[] = {'a', 'b', 'c'};
        String str = new String(data);
        /**
         * 应为String底层是靠字符数组实现的。
         */
           }
}

String常用方法

public class test2 {
    public static void main(String[] args) {
        String s="abc";

        //length():获取字符串的长度,其实也就是字符个数
        System.out.println(s.length());//输出为  3

        //concat:将将指定的字符串连接到该字符串的末尾
        String s1="abc";
        String s2 = s1.concat("defg");
        System.out.println(s2);//输出为  abcdefg

        //charAt:获取指定索引处的字符
        String s3="1234";
        System.out.println(s3.charAt(0));//输出为 1
        System.out.println(s3.charAt(1));//输出为 2
        System.out.println(s3.charAt(2));//输出为 3
        System.out.println(s3.charAt(3));//输出为 4

        //substring:从?开始截取字符串到字符串结尾
        String s4="123456789";
        System.out.println(s4.substring(1));//输出为 23456789
        System.out.println(s4.substring(6));//输出为 789

         //substring:从?到?截取
        String s5="0123456";
        System.out.println(s5.substring(0,5));//输出为 01234
    }
}

String的转换工能

public class test3 {
    public static void main(String[] args) {
        String s="123";

        //toCharArray():把字符串转换为字符数组
        char[] c = s.toCharArray();
        for (int i = 0; i < c.length; i++) {
            System.out.println(c[i]);
            /**
             * 输出为
             * 1
             * 2
             * 3
             */

        }
        //getBytes():把字符串转换为字节数组
        byte[] bytes = s.getBytes();
        for(int x = 0; x < bytes.length; x++) {
            System.out.println(bytes[x]);//输出为 49  50  51
        }

        //replace():替换字母?为大写?
        String s1="abcdefg";
        String replace = s1.replace("defg", "DEFG");
        System.out.println(replace);//输出为 abcDEFG
    }
}

分割工能

public class test {
    public static void main(String[] args) {
        String s="11,22,33";
        String[] split = s.split(",");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
            /**
             *   输出为
             *   11
             *   22
             *   33
             */

        }
    }
}

统计字符个数

public class test4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String s = scanner.nextLine();

        int a=0;
        int b=0;
        int c=0;
        for (int i = 0; i < s.length(); i++) {
            //获取输入的每一个字符
            char c1 = s.charAt(i);
            //获取大写字母个数量
            if (c1>='A'&&c1<='Z') {
                a++;

                //统计小写字母数量
            }else if (c1>='a'&&c1<='z'){
                b++;
                //统计数字数量
            }else if(c1>='0'&&c1<='9'){
                c++;
            }else {
                System.out.println("字符"+c1+"不合法");
            }

        }
        //输出结果
        System.out.println("大写字符:"+a+"个");
        System.out.println("小写字符:"+b+"个");
        System.out.println("数字字符:"+c+"个");
    }
}
请输入一个字符串
1g61w6g1we6g1QW56RFRQW61FQ6F
大写字符:10个
小写字符:6个
数字字符:12个

Process finished with exit code 0

你可能感兴趣的:(java基础)