String类应用实例

题目:已知String str = “this is a text”,1.将str中的单词获取出来 2.将str中的text替换为practice 3.在text前面插入一个easy 4.将每一个单词的首字母改为大写

public class Demo06 {
    public static void main(String[] args) {
        //已知String str = “this is a text”,1.将str中的单词获取出来 2.将str中的text替换为practice 3.在text前面插入一个easy 4.将每一个单词的首字母改为大写
        String str = "this is a text";
        //1.将str中的单词获取出来
        System.out.println("=====将str中的单词获取出来=====");
        String[] array = str.split(" ");
        for (String string:array) {
            System.out.println(string);
        }
        //2.将str中的text替换为practice
        System.out.println("=====将str中的text替换为practice=====");
        String str1 = str.replace("text","practice");
        System.out.println(str1);
        //3.在text前面插入一个easy
        System.out.println("=====在text前面插入一个easy=====");
        String str2 = str.replace("text","easy text");
        System.out.println(str2);
        //4.将每一个单词的首字母改为大写
        System.out.println("=====将每一个单词的首字母改为大写=====");
        StringBuffer Array = new StringBuffer();
        for (int i = 0; i < array.length; i++) {
            char first = array[i].charAt(0);//提取每个单词中下标为0的字符串,即首字母
            char First = Character.toUpperCase(first);//将首字母变为大写
            String str3 = First + array[i].substring(1);//首字母与其余字母拼接
            Array.append(str3).append(" ");//将所有单词拼接
        }
        System.out.println(Array.toString().trim());
    }
}
  • 1、关于String、StringBuffer、StringBulider的区别

  • String:所有的String都会默认由final修饰,以常量形式保存在常量池(字符串池)中,所以当每一个String被创建好之后,就不会再发生任何变化了;在以下代码中,系统并非是将name的值改变成"Joe",而是创建了一个新的也名为"name"的对象,并把"Joe"赋给了name,而原来的"name"会被JVM的垃圾回收制度给回收掉,其本质为不断新建和回收的过程,故而执行速度很慢

        String name = "Emmet";
        name = "Joe";
  • StringBuffer:不同于String的地方在于,StringBuffer的对象是变量,其本质为对该对象直接进行修改,不存在String的新建和回收过程,故而执行速度远超String;如下,方法一会比方法二执行速度慢很多;

    //拼接"abc"与"de"
    //方法一
    String str1 = "abc";
    String str2 = "de";
    String str = str1 + str2;
    System.out.println(str);
    //方法二
    StringBuilder stringBuilder=new StringBuilder().append("abc").append("de");
    System.out.println(stringBuilder.toString().trim());
  • StringBulider:和StringBuffer相同的地方在于,StringBulider的对象也是变量,同样是对该对象直接进行修改;但如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的,但StringBuilder的方法则没有该关键字,所以不能保证线程安全,有可能会出现一些错误的操作;

  • 所以我们做出以下总结:

  • 在字符串数量较少时可以使用String;

  • 单线程下在字符缓冲区进行大量操作的情况使用StringBulider;

  • 多线程下下在字符缓冲区进行大量操作的情况用StringBuffer;

2.subString()方法

  • 作用:从此实例检索子字符串;截取子字符串在指定的字符位置开始并一直到该字符串的末尾;

  • 使用方法:public string Substring(int startIndex);

    public static void main(String[] args) {
        String str = "我爱中国";
        String str2 = str.substring(2);
        System.out.println(str2);//中国
    }

3.StringBuffer的相关方法

  • append(); 追加:在字符串后追加内容;

  • insert();添加,可以在指定位置添加;

  • replace();替换,可以指定位置进行替换;

  • delete();删除,可以删除指定角标的字符;

public class Demo08 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        //1.append(); 追加
        sb.append("少林功夫好耶");
        System.out.println(sb.toString());//少林功夫好耶
        sb.append(",少林功夫棒耶");
        System.out.println(sb.toString());//少林功夫好耶,少林功夫棒耶
        //2.insert(); 添加,可以在指定位置添加
        sb.insert(0,"当当当当当,");
        System.out.println(sb.toString());//当当当当当,少林功夫好耶,少林功夫棒耶
        //3.replace(); 替换,指定位置替换
        sb.replace(2,5,"邦邦邦");
        System.out.println(sb.toString());//当当邦邦邦,少林功夫好耶,少林功夫棒耶
        //4.delete();
        sb.delete(0,6);
        System.out.println(sb.toString());//少林功夫好耶,少林功夫棒耶
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值