Java常用类(String相关类)-8

目录

包装类

装箱和拆箱

包装类型和String的转换,包装类的常用方法

Java_String

两种创建方式解析

测试

常用方法

Java_StringBuffer 

String和StringBuffer的转换

常用方法

 Java_StringBuilder


包装类

Java常用类(String相关类)-8_第1张图片

装箱和拆箱

Java常用类(String相关类)-8_第2张图片

package com.edu.wrapper;

public class Interger01 {
    //演示int<-->Integer的装箱和拆箱
    //手动装箱
    int n1=100;
    Integer integer = new Integer(n1);
    Integer integer01 = Integer.valueOf(n1);

    //手动拆箱
    int i = integer.intValue();

    //jdk5后自动拆装
    int n2 = 200;
    Integer integer3 = n2;//底层仍然是Integer.valueOf()
    int n3 = integer3;//底层仍然是integer.intValue();

}

Java常用类(String相关类)-8_第3张图片

包装类型和String的转换,包装类的常用方法

package com.edu.wrapper;

public class Wrapper02 {
    public static void main(String[] args) {
        //包装类-->String
        Integer i =100; //自动装箱
        //方式1
        String str = i+"";
        //方式2
        String str1 = Integer.toString(i);
        //方式3
        String str3 = String.valueOf(i);

        //String-->包装类
        String str4 ="123";
        Integer integer = Integer.parseInt(str4);//自动转箱
        char str5 = 'a';
        System.out.println((char)((int)str5-32));
        System.out.println(Integer.MAX_VALUE);
    }
}

Java常用类(String相关类)-8_第4张图片Java常用类(String相关类)-8_第5张图片

Java_String

Java常用类(String相关类)-8_第6张图片Java常用类(String相关类)-8_第7张图片

两种创建方式解析

Java常用类(String相关类)-8_第8张图片

Java常用类(String相关类)-8_第9张图片

测试

Java常用类(String相关类)-8_第10张图片Java常用类(String相关类)-8_第11张图片Java常用类(String相关类)-8_第12张图片

常用方法

package com.edu.string;

import javax.swing.plaf.synth.SynthOptionPaneUI;

public class demo01 {
    public static void main(String[] args) {
        /*
        String的常用方法
        1.equals:比较字符串,区分大小写
        2.equalsIgnorecase:比较字符串,忽略大小写
        3.length:获取字符的个数,字符串长度
        4.indexOf 获取字符在字符串对象中第一次出现的索引(也可以是字符串,字符串返回的是子串第一个字符的索引)
        5.lastIndexof 获取字符在字符串对象中最后一次出现的索引(也可以是字符串)
        6.subString 截取指定范围的子串
         */
        String name = "hello,张三";
        System.out.println(name.substring(6));//获取从索引为6个字符后的字符(包括索引6)
        System.out.println(name.substring(2,5));//获取索引2-(5-1)的字符
        /*
        7.toUpperCase:转化为大写
        8.toLowerCase:转化为小写
        9.concat:字符串拼接
        10.replace:将字符串中的内容替换
         */
        String s1 = "宝玉 and 薛宝钗 薛宝钗 薛宝钗";
        //10将所有的薛宝钗替换为林黛玉
        String s2 = s1.replace("薛宝钗","林黛玉");//本身对s1没有影响
        //11 split:字符串切割
        String poem = "1,2,3,4";
        String[] split = poem.split(","); //以逗号为标准进行分割
        //12 toCharArray :转换为字符数组
        //13 compareTo :比较字符串大小 先长度再内容比较相减
        //14 trim 去除前后空格
        //15 charAt 获取索引字符 charAt[0]
        //16 format 格式化字符串
        String name_John = "John";
        int age = 10;
        double score = 98.3/3;
        char gender = '男';
        //%.2f会四舍五入
        String info = String.format("我的名字是%s年龄是%d,成绩是%.2f性别是%c,希望大家喜欢我",name_John,age,score,gender);
        System.out.println(info);
        /*
        复用
        String formatString = "我的名字是%s年龄是%d,成绩是%.2f性别是%c,希望大家喜欢我"
        String info = String.format(formatString,name_John,age,score,gender);
         */




    }
}

Java_StringBuffer 

StringBuffer是一个容器,可以对字符串进行增加删除的,是可变长度的

Java常用类(String相关类)-8_第13张图片

String和StringBuffer的转换

package com.edu.string;

public class demo02 {
    public static void main(String[] args) {
        /*
        StringBuffer构造器的使用
         */
        //1、创建一个大小为16的char[];
        StringBuffer stringBuffer = new StringBuffer();
        //2、通过构造器指定char[]大小
        StringBuffer stringBuffer1 =  new StringBuffer(100);
        //3、通过给一个String创建StringBuffer,char[] 大小就是str.length+16
        StringBuffer stringBuffer2 = new StringBuffer("hello");

        //String 和 StringBuffer的相互转换
        String str = "hello tom";
        //方式1 使用构造器
        StringBuffer stringBuffer3 = new StringBuffer(str);
        //方式2
        StringBuffer stringBuffer4 = new StringBuffer();
        StringBuffer append = stringBuffer4.append(str);
        //StringBuffer-->String
        //1 使用toString()方法
        String str1 = stringBuffer3.toString();
        //2 使用构造器直接new
        String s2 =new String(stringBuffer4);
    }
}

常用方法

package com.edu.string;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        //增
        StringBuffer stringBuffer = new StringBuffer("hello");
        stringBuffer.append("1");
        stringBuffer.append("11").append("12");
        //System.out.println(stringBuffer);
        //删 删除索引下标11到13的字符[1,3);
        stringBuffer.delete(1,3);
        //改 修改索引为[0,2)的字符,替换为周芷若
        stringBuffer.replace(0,2,"周芷若");
        //查找
        int index = stringBuffer.indexOf("hello");
        //插入 指定索引插入字符串,原来索引为9的位置自动后移
        stringBuffer.insert(9,"周志强");

        //123564,59-->123,564,59 小数点前每3位用,隔开
        StringBuffer stringBuffer1 = new StringBuffer("13564,59");
        System.out.println(stringBuffer1.indexOf(","));
        for (int i=stringBuffer1.indexOf(",")-3;i>0;i-=3){
            stringBuffer1.insert(i,",");
        }
        System.out.println(stringBuffer1);

        /*
        老师的步骤
        1、定义一个Scanner对象,接收用户的输入(String)
        2、转换为StringBuffer对象
        3、处理
         */
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        StringBuffer stringBuffer2 = new StringBuffer(str);
        for (int i=stringBuffer2.indexOf(".")-3;i>0;i-=3){
            stringBuffer2.insert(i,".");
        }
        System.out.println(stringBuffer2);
        scanner.close();
    }
}

 Java_StringBuilder

线程不安全

Java常用类(String相关类)-8_第14张图片Java常用类(String相关类)-8_第15张图片

Java常用类(String相关类)-8_第16张图片

练习题 

Java常用类(String相关类)-8_第17张图片

package com.edu.string;

public class Demo04 {
    public static void main(String[] args) {
        String name = "jack";
        String pwd = "123456";
        String email = "[email protected]";
        try {
            userRegister(name,pwd,email);
            System.out.println("注册成功");
        } catch (Exception e) {
           System.out.println(e.getMessage());
        }
    }

    public static void userRegister(String name,String pwd,String email){
        int nameLength = name.length();
        if(!(nameLength >= 2 && nameLength <= 4)){
            throw new RuntimeException("用户名长度异常");
        }

        if(!(pwd.length() == 6 && isNumber(pwd))){
            throw new RuntimeException("密码格式错误");
        }

        int i = email.indexOf('@');
        int j = email.indexOf('.');
        if(!(i > -1 && j > i)){
            throw new RuntimeException("邮箱错误");
        }


    }
    public static boolean isNumber(String pwd){
        char[] chars = pwd.toCharArray();
        for (char i:chars){
            if(!(Character.isDigit(i))){  //char[i]<'0'||char[i]>'9'
                return false;
            }
        }
        return true;
    }
}

Java常用类(String相关类)-8_第18张图片

package com.edu.string;

public class Demo05 {
    public static void main(String[] args) {
        StringBuilder str = newName("Han shun Ping");
        System.out.println(str);
        printName("Han shun Ping");
    }
    public  static  StringBuilder newName (String name){
        String[] nameArrays = name.split(" ");
        StringBuilder str = new StringBuilder();
        str.append(nameArrays[2]);
        str.append(',');
        str.append(nameArrays[0]);
        str.append('.');
        String temp = nameArrays[1];
        str.append(temp.substring(0,1).toUpperCase());

        return str;

    }
    //别的方法
    public static void printName(String str){
        if(str==null){
            System.out.println("不能为空");
            return;
        }
        String[] names = str.split(" ");
        String info = String.format("%s,%s.%s",names[2],names[0],names[1].substring(0,1).toUpperCase());
        System.out.println(info);

    }
}

Java常用类(String相关类)-8_第19张图片 

 

你可能感兴趣的:(Java入门学习,java,开发语言)