字符串代码-先自学-学会查api和百度

概述:
1)、程序经常处理大量文本数据,所以字符串在程序中很常用,很重要。
2)、结构:字符串就是一系列字符组成,可以理解为“字符”数组。
3)、字符串对应String类,是引用数据类型。

字符串:
1、创建:有3种方式:见demo1()
2、连接:有4种方式:见demo2()
说明:
*、要求线程安全的情况下,则必须使用StringBuffer类。
*、否则使用StringBuilder类。
*、后面专题细讲。

3、格式字符串,见demo3()
4、日期格式化,见demo4()
5、字符串按字符截取,见demo5()
   *、见idea提示方法会出错,查api文档。
7、字符串分割为数组,见demo6()
8、字符串替换,见demo7()
9、字符串查找定位,见demo8()
10、字符串比较,见demo9()
11、字符串按索引获取字符,见demo10()
12、空字符串的判断(重要),见demo11()
任务:开发以下两个方法,并思考:有没有必要开发两个方法?
*、StringUtils.isNotBlank(str):判断字符串不为空
*、StringUtils.isBlank(str):判断字符串为空

 

package com.iit.demo;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class DemoStr {
    public static void main(String[] args) {
        //创建字符串的3种方式
        //demo1();
        //常见属性
        //demo2();
        //格式化
        //demo3();
        //日期时间格式化
        //demo4();
        //字符串截取
        //demo5();
        //字符串分割到数组
        //demo6();
        //字符串替换
        //demo7();
        //字符串查找
        //demo8();
        //字符串比较
        //demo9();
        //字符串按索引获取字符
        //demo10();
        //
        demo11();
    }

    private static void demo11() {
        String s1 = null;
        boolean check1 = s1 == null ||"".equals(s1);
        s1 = "";
        boolean check2 = s1 == null ||"".equals(s1);
        //去除首尾空格以后判断是否空串
        s1 = " ";
        s1 = s1.trim();
        boolean check3 = s1 == null ||"".equals(s1);
        System.out.println("check1=" + check1);
        System.out.println("check2=" + check2);
        System.out.println("check3=" + check3);

        //调用isEmpty()方法
        boolean check4 = s1 == null || s1.isEmpty();
        System.out.println("check4=" + check4);
    }

    private static void demo10() {
        String words = "hello,world";
        System.out.println("charAt(0)="+words.charAt(0));
        System.out.println("charAt(3)="+words.charAt(3));
        System.out.println("charAt(length-1)="+words.charAt(words.length()-1));
    }

    private static void demo9() {
        //要点:要用equals()方法比较
        String str1 = "abc";
        String str2 = new String("abc");
        String str3 = "ABC";
        System.out.println("equals(str2)"+str1.equals(str2));
        System.out.println("equals(str3)="+str1.equals(str3));
        System.out.println("equalsIgnoreCase(str3)="+str1.equalsIgnoreCase(str3));
    }

    private static void demo8() {
        String words = "today,monday,sunday";
        System.out.println("原始字符串是'"+words+"'");
        System.out.println("indexOf(day)结果:"+words.indexOf("day"));
        System.out.println("indexOf(day,5)结果:"+words.indexOf("day",5));
        System.out.println("indexOf(o)结果:"+words.indexOf("o"));
        System.out.println("indexOf(o,6)结果:"+words.indexOf("o",6));
        System.out.println("lastIndexOf(day)结果:"+words.lastIndexOf("day"));
    }

    private static void demo7() {
        String src = "123451234512345";
        //将123替换为*
        String s1 = src.replaceAll("123","*");
        System.out.println("s1="+s1);
        //将1或2或3替换为*
        //[123]是正则表达式(须专题讲)
        String s2 = src.replaceAll("[123]","*");
        System.out.println("s2="+s2);
    }

    private static void demo6() {
        String Colors = "Red,Black,White,Yellow,Blue";
        //通过var生成代码
        String[] array1 = Colors.split(",");
        System.out.println(Arrays.toString(array1));
        //只要前3个 问题:现在array2中的值是什么?
        //回答:最后一个包含了后面所有的字符串。
        String[] array2 = Colors.split(",",3);
        System.out.println(Arrays.toString(array2));
    }

    private static void demo5() {
        String src = "0123456789";
        String str1 = src.substring(3);
        System.out.println("substring(3)="+str1);
        String str2 = src.substring(3,2);
        System.out.println("substring(3,2)="+str2);
    }

    private static void demo4() {
        //打印日期(不建议用String.format打印日期.
        Date now=new Date();
        //注意:规则大小写敏感
        String format = "yyyy-MM-dd HH:mm:ss";
        showTimeByRule(format);
        //提示:英语单词固定,其它部分可以随便改。
        format = "当前时间:yyyy/MM/dd HH_mm_ss";
        showTimeByRule(format);
        //获取天数、周数等
        showTimeByRule("年中的周数:w");
        showTimeByRule("月份中的周数:W");
        showTimeByRule("月份中的天数:d");
        showTimeByRule("年中的天数:D");
        showTimeByRule("月份中的星期:F");
        showTimeByRule("星期中的天数:E");
    }

    private static void showTimeByRule(String format) {
        Date now=new Date();
        SimpleDateFormat fmt= new SimpleDateFormat(format);
        String timeStr = fmt.format(now);
        System.out.printf("格式【%s】=【%s】\n",format,timeStr);
    }

    private static void demo3() {
        //不同的数据类型,对应不同的格式化字符,此处先了解。
        String name = "张三";
        int age = 22;
        float height = 1.8532f;
        String s1 = String.format("姓名:【%s】;年龄:【%d】;身高=【%9.2f】",
                name,age,height);
        System.out.println(s1);
    }

    //连接字符串
    private static void demo2() {
        //方式1:用+增加(简单场景下使用)
        String s1 = "aa";
        String s2 = "bb";
        String s3 = s1+","+s2;
        //方式2:连续增加:concat
        String s4 = s1.concat(",").concat(s2);
        System.out.println("s3="+s3);
        System.out.println("s4="+s4);
        //方式3:用StringBuilder(优先考虑,看构造方法)
        StringBuilder sb1 = new StringBuilder("a1");
        sb1.append(",a2");
        sb1.append(",a3");
        System.out.println("sb1="+sb1);
        //方式4:用StringBuffer(多线程下考虑,看构造方法)
        StringBuffer sb2 = new StringBuffer("b1");
        sb2.append(",b2");
        sb2.append(",b3");
        System.out.println("sb2="+sb2);
    }

    private static void demox() {
        String greeting = "我爱java";
        int len = greeting.length();
        System.out.println( greeting+" 字符串的长度是: " + len );
    }

    private static void demo1() {
        //方式1
        String s1="hello";
        //方式2
        String s2=new String("java");
        //方式3
        char[] c1 = { '','','j', 'a', 'v', 'a', 'i' };
        String s3=new String(c1);
        System.out.println("s1+s2="+s1+","+s2);
        System.out.println("s3="+s3);
    }
}

 

posted @ 2022-05-24 22:51  xiaoyongdata  阅读(108)  评论(0编辑  收藏  举报