字符串操作

字符串操作


/*
 * 1.string类
 *  1.1字符串的声明
 *      在Java语言中,字符出啊必须包含在一对双引号("")内;
 *      声明字符串变量必须进行初始化,否则编译器会报出“变量为被初始化错误”;
 *  1.2字符串的创建
 *      不是通过new的方式创建的两个相同字符串,具有相同的实体,其指向的地址一样
 * 2.连接字符串
 *  2.1连接多个字符串
 *      使用"+"运算符可以实现多个字符串的拼接功能
 *      Java中一句相连的字符串不能分开在两行中写,可以使用“+”进行拼接
 *  2.2连接其他数据类型
 *      如果将字符串同其他基本数据类型进行连接,会将那些数据直接转换成字符串(调用toString()方法)
 *      只要"+"运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字符串类型
 * 3.获取字符串信息
 *  3.1获取字符串长度      
 *      str.length();
 *  3.2字符串查找
 *      str.indexOf(String s) 返回搜索的字符串首次出现的索引
 *      str.lastIndexOf(String s) 返回搜索字符串最后一次出现的索引
 *          如果lastIndexOf()方法中的参数为控字符串(注意不是空格),则返回的结果和调用length()方法的返回结果相同   
 *  3.3获取指定索引位置的字符
 *      str.charAt(int index) 返回指定索引处的字符
 * 4.字符串操作
 *  4.1获取子字符串
 *      str.subString(int beginIndex)
 *      从指定位置开始截取直到字符串的结尾的子串
 *      在字符串中,空格占用一个索引位置
 *  4.2去除空格
 *      str.trim();
 *      返回字符串的副本,忽略前导空格和尾部空格
 *  4.3字符串替换
 *      str.replace(char oldChar,char newChar);
 *      如果要替换的字符或者字符串在原字符串中重复出现多次,replace()方法会将所有的oldChar替换成newChar
 *      注意replace()区分大小写。
 *  4.4判断字符串的开头和结尾
 *      str.startsWith(String prefix);
 *      str.endsWith(String suffix);
 *      两个方法的返回值类型为Boolean型
 *  4.5判读字符串是否相等
 *      不能简单的使用比较运算符“==”,因为比较运算符比较的是地址是否相同,即使两个字符串的内容相同,两个对象的内存地址也是不同的
 *      str.equals(String otherstr);
 *      如果两个字符穿具有相同的字符和长度,使用equals()方法比较时,返回true;
 *      str.equalsIgnoreCase(String otherstr);
 *      使用equals()方法比较时是区分大小写的,equalsIgnoreCase()忽略大小写,返回值仍是boolean型
 *  4.6按字典顺序比较两个字符串
 *      str.compareTo(String otherstr);
 *      str先于otherstr,返回负整数;反之返回正整数;如果两个字符串相等,则结果为0;
 *      compareTo()方法只有在equals(Object)方法返回true是才返回0.
 *  4.7字符串大小写转换
 *      str.toLowerCase();将string转换成小写
 *      str.toUpperCase();将string转换成大写
 *      使用toLowerCase()和toUpperCase()方法进行大小写转换时,数字或非字符不受影响
 *  4.8字符串分割
 *      str.split(String sign);其中sign为分割字符串的分割符,也可以使用正则表达式
 *      如果想定义多个分割符,可以使用“|”,如",|="表示的分割符为",""="。
 * 5.格式化字符串
 *      str.format(String format,OBject....args);
 *              format为格式字符串;args是格式字符串中由格式说明符引用的参数
 *  5.1日期和时间字符串的格式化
 *      记住一些常用的常规转换符 %tc 全部时间和日期信息 ;%ty %tY 年; %tm 月;%td 日;%tH ;%tM;%tS;
 *  5.2常规类型格式化      
 * 6.使用正则表达式
 *  正则表达式通常用于判断语句中,用来检查某一字符串是否满足某一条件
 *  在正则表达式中"."代表任何一个字符,所以想要在正则表达式中使用普遍意义上的点字符".",必须使用转义字符"/";
 * 7.字符串生成器
 *  StringBuilder类
 *      append(content) 向字符串生成器中追加内容
 *      insert(int offset.arg)向字符串生成器中的指定位置插入数据内容
 *      delete(int start,int end) 移除次序列的子字符串中的字符 
 * */
public class Demo {
    public static void main(String[] args) {
        /*
        char a[] = {'s','t','u','d','e','n','t'};
        //从字符数组a的下标为2开始,截取长度为4的字符串s
        String s = new String(a,2,4);
        //将字符串数组保存到字符串s1中
        String s1 = new String(a);
        */

        /*
        System.out.println(s1);
        //输出字符串s的长度
        System.out.println(s.length());
        */

        /*
        //输出字符串t在字符串s1中第一次出现的索引
        System.out.println(s1.indexOf("t"));
        //输出字符串t在字符串s1中最后一次出现的索引
        System.out.println(s1.lastIndexOf("t"));
        */

        /*
        //获取指定索引位置的字符
        System.out.println(s1.charAt(5));
        */

        //声明一个字符串
        String str = "Hello World! ";

        /*
        //获取子串
        String str1 = str.substring(2);
        System.out.println(str1);
        */

        /*
        //去除空格
        String str1 = str.trim();
        System.out.println(str1);
        */

        /*
        //字符串替换
        String newStr = str.replace("o", "a");
        System.out.println(newStr);
        */

        /*
        //判断字符串的开始和结尾
        boolean rel = str.startsWith("He");
        boolean re11 = str.endsWith("d");
        System.out.println(rel);
        System.out.println(re11);
        */

        /*
        //判断字符串是否相等
        String tom = new String("i am a student.");
        String jack = new String("i am a student.");
        String xiaoming = new String("I am a student.");
        System.out.println(tom==jack);
        System.out.println(tom.equals(jack));
        System.out.println(tom.equals(xiaoming));
        System.out.println(tom.equalsIgnoreCase(xiaoming));
        */

        /*
        //按字典顺序比较两个字符串
        String tom = "student";
        String jack = "teacher";
        String lihua = "student";


        System.out.println(tom.compareTo(jack));
        System.out.println(tom.compareTo(lihua));
        */

        /*
        //字母大小写转换
        String str1 = str.toLowerCase();
        String str2 = str.toUpperCase();
        System.out.println(str1);
        System.out.println(str2);
        */

        /*
        //字符串分割
        String s = new String("abc,def,ghi,jkl");
        //使用split()方法对字符串进行分割,返回字符串数组
        String newStr[] = s.split(",");
        for(int i = 0;i<newStr.length;i++){
            System.out.println(newStr[i]);
        }
        //对字符串进行拆分,并限定拆分次数
        String[] newStr2 = s.split(",",2);
        for(int i = 0; i<newStr2.length;i++){
            System.out.println(newStr2[i]);
        }
        */

        /*
        //字符串生成器
        StringBuilder sb = new StringBuilder("Hei,");
        //追加字符串
        sb.append("Tom.");

        System.out.println(sb);
        //插入内容
        sb.insert(4, "I am ");
        System.out.println(sb);

        //删除内容
        sb.delete(4,9);
        System.out.println(sb);
        */

        /*
        //分别截取两个字符串中的部分内容,比较两个子串是否相同(不区分大小写)
        String str1 = new String("I am a student");
        String str2 = new String("you are Stu1");

        String newStr1 = str1.substring(7, 10);
        String newStr2 = str2.substring(8, 11);

        boolean rel = newStr1.equalsIgnoreCase(newStr2);

        if(rel){
            System.out.println("两个子串相同");
        }else{
            System.out.println("两个子串不同");
        }
        */

        /*
        //使用正则表达式判断字符串text是否为合法的手机号
        String text = "18037714567";
        String regex = "1[0-9]{10}";

        if(text.matches(regex)){
            System.out.println(text+"是一个合法的手机号");
        }else{
            System.out.println("不是");
        }
        */

        //使用字符串生成器,将字符串str1追加1-10这10个数字
        StringBuilder str1 = new StringBuilder("报数:");

        for(int i =1; i< 11; i++){
            str1.append(i+",");
        }

        System.out.println(str1);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值