API(2)

API

String(byte[] bytes)

对字符串进行编码与解码,默认使用的是utf-8编码格式

public class StringDemo1 {

    public static void main(String[] args) throws UnsupportedEncodingException {

        /*String s = "abc";
        byte [] b = s.getBytes();//编码
        System.out.println(Arrays.toString(b));
        String s1 = new String(b);//解码
        System.out.println(s1);*/

        //当编码与解码使用的编码格式不统一时,就会出现乱码问题
        System.out.println('中'+0);
        String ss = "中文";
        byte [] bb = ss.getBytes("GBK");//编码
        System.out.println(Arrays.toString(bb));
        String ss1 = new String(bb,"GBK");//解码
        System.out.println(ss1);

        String s2 = new String(bb,2,2,"GBK");
        System.out.println(s2);

    }
}

String(char[] value)

对给定的字符串进行排序,首先将字符串存入数组中,然后进行排序并输出

public class StringDemo2 {

    public static void main(String[] args) {

        /*
        char[] toCharArray();
         */
        String s = "absrxhrdbfv";
        char[] chars = s.toCharArray();
        Arrays.sort(chars);
        System.out.println(Arrays.toString(chars));
        String s1 = new String(chars);
        System.out.println(s1);

        String s2 = String.valueOf(chars);
        System.out.println(s2);


    }
}

替换功能

字符串的替换以及对空格的删除

public class StringDemo3 {

    public static void main(String[] args) {

        /*
        替换功能
        String replace(char old,char new)
        String replace(String old,String new)
        去掉字符串空格  String trim()
         */

        //字符串的替换
        String s = "abcdefg   ";
        System.out.println(s.replace("c","C"));

        //测试字符串的长度
        System.out.println(s.length());
        //删除字符串中的空格,返回一个新的字符串
        System.out.println(s.trim().length());//转们去除字符串,前后的空格,中间的不变化


    }
}

正则表达式

(1) 字符串的拆分、替换、格式匹配

public class StringDemo4 {

    public static void main(String[] args) {

        /*
        split(String regex)
        replaceAll(String regex,String replacement)
        replaceFirst(String regex,String replacement)
         */

        String s = "ab:cd:efg";
        //字符串的拆分,,,,遇到":"就拆分;;"\\d"遇到数字就拆分;;"\\w"遇到字母就拆分
        String [] ss = s.split(":");
        String [] sss = s.split("\\w");
        System.out.println(Arrays.toString(ss));
        System.out.println(Arrays.toString(sss));

        String sq = "abcdefg";
        //replaceAll(),,替换所有的
        //replaceFirst(),,只替换第一个
        String sq1 = sq.replaceAll("cd","CC");
        System.out.println(sq1);

        /*
        正则表达式
           规则
           是一种字符串模式匹配语言

           注册账号
               手机号     13468560674  11位   数字  以1开头   ----格式
               邮箱       3220391951@qq.com  必须包含@字符,后面的格式是固定的
         */

        /*Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个手机号:");
        String  phone = sc.next();*/
        //凡是有输入的地方必须要有验证
        //phone.charAt(0)==1   phone.length()==11

        String st = "a";
        boolean res = st.matches("a");//用字符串对象中mathes("正则表达式");
        System.out.println(res);

        /*
         . 任何字符(与行结束符可能匹配也可能不匹配)
         \d 数字:[0-9]
         \D 非数字: [^0-9]
         \s 空白字符:[ \t\n\x0B\f\r]
         \S 非空白字符:[^\s]
         \w 单词字符:[a-zA-Z_0-9]
         \W 非单词字符:[^\w]

         X? X,一次或一次也没有
         X* X,零次或多次
         X+ X,一次或多次
         X{n} X,恰好 n 次
         X{n,} X,至少 n 次
         X{n,m} X,至少 n 次,但是不超过 m 次

         X|Y X 或 Y
         */

        String sp = "2";
        boolean res1 = sp.matches("\\d+");
        System.out.println(res1);

        //手机号规则
        String sss1 = "14768560674";
        boolean phone = sss1.matches("1[3457]\\d{8}4");
        System.out.println(phone);

        //QQ号格式
        String sss2 = "3220391951";
        boolean QQ = sss2.matches("[1-9]\\d{4,10}\\d[0-9]");
        System.out.println(QQ);

        //邮箱格式判定
        String sp1 = "3220391951@qq.cnqwerf";
        boolean youxiang = sp1.matches("[1-9]\\d{5,11}@[a-z,0-9]{2,5}.[A-z]{2,10}");
        System.out.println(youxiang);

        //非单词字符
        String sq11 = "%&$%";
        boolean feidanci = sq11.matches("\\W+");
        System.out.println(feidanci);

        //单词字符
        String sq2 = "6789iejdhiejhd829woijqsodhwuEUDSUIJJIJCSIJQWO9SCD";
        boolean danci1 = sq2.matches("\\w+");
        System.out.println(danci1);

        //通用邮箱格式                                                   \\. 对.符号进行转义
        boolean res11 = "dfgd3AA73@163qq.com.com".matches("\\w{6,10}@\\w{2,5}\\.(com|com\\.cn)");
        System.out.println(res11);
    }
}

StringBuffer

线程安全,可变的字符序列,字符缓冲区就像一个String,值可变的字符串

StringBulider

线程不安全的,值可变的字符串

public class StringBufferDemo1 {

    public static void main(String[] args) {

        /*
        StringBuffer线程安全的,值可变的字符串
        StringBuilder线程不安全的,值可变的字符串
        public StringBuffer() {
        super(16);
        }
         */


        //创建一个字符串对象,底层是一个char数组
        /*StringBuffer s = new StringBuffer();//默认无参的构造方法
        StringBuffer ss = new StringBuffer(30);
        StringBuilder s1 = new StringBuilder();   */

        StringBuffer s2 = new StringBuffer("abcd");
                     s2.append("11111");
                     
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值