Java String 详细总结

本文详细介绍了Java中的字符串特性,包括字符串常量池、常用方法如length、substring、contains等,并展示了如何使用StringBuffer和StringBuilder进行字符串的高效修改。此外,还通过实例演示了字符串的大小写转换、插入单词、替换与分割操作,以及性能对比。
摘要由CSDN通过智能技术生成
/*
 字符串:
 1、字符串为常量,创建后不可改变,存储在方法区的字符串池(常量池)中
 2、常用方法:
        // length  substring charAt contains toCharArray indexOf lastIndexOf
        // trim endsWith startsWith toUpperCase toLowerCase
        // replace split
        // compareTo equals
        // 英文句子 插入单词,首字母转大写
3、StringBuffer StringBuilder 改变原来字符串,且计算速度大幅度提高
    //常用方法:String 类型的相互转换  append  insert replace delete
    //StringBuilder str=new StringBuilder("this is a text");//String 类型的相互转换
​
 */
​
import java.util.Arrays;
​
public class StringClass {
    public static void main(String[] args) {
        //1、字符串为常量,创建后不可改变,存储在方法区的字符串池(常量池)中
        String name="su";//name为变量在栈中,指向字符串池(常量池)中的"su"
        name="yang";//字符串池(常量池)中新创建"yang",name指向字符串池(常量池)中的"yang","su"无引用变为垃圾
        String yang = new String("yang");// 一个对象,一个变量,一个常量池(浪费空间)
        //字符串池(常量池)中寻找"yang",在堆中对象yang指向字符串池(常量池)中的"yang",栈中的变量yang指向堆中的对象yang
        System.out.println(name == yang);//false 比地址
        System.out.println(name.equals(yang));// true 比内容
​
        // 2、常用方法:
        // length  substring charAt contains toCharArray indexOf lastIndexOf
        // trim endsWith startsWith toUpperCase toLowerCase
        // replace split
        // compareTo equals
        // 英文句子 插入单词,首字母转大写
        String content="在编程语言中java是优秀的语言吗?";
        System.out.println(content.length());// 18 字符数量 空格也算
        System.out.println(content.substring(2));//截取,从第2+1到最后
        System.out.println(content.charAt(content.length() - 1));// 言 小标从0开始
        System.out.println(content.contains("java"));//true
        char[] chars = content.toCharArray();//字符数组
        System.out.println(Arrays.toString(chars));// [在, 编, 程, 语, 言, 中, j, a, v, a, 是, 优, 秀, 的, 语, 言, 吗, ?]
        System.out.println(content.indexOf("java", 2));// 6(结果为顺数第7个) 从前找,从0位置开始
        System.out.println(content.lastIndexOf("java"));// 6(结果为顺数第7个) 从后找
        String txt=" A班联系方式ShangHai.txt ";
        txt=txt.trim();//去除前后空格
        System.out.println(txt);
        System.out.println(txt.endsWith("txt"));//判断首尾
        System.out.println(txt.startsWith("A"));
        System.out.println(txt.toUpperCase());//大小写转换
        System.out.println(txt.toLowerCase());
        String newContent = content.replace("java", "C++");// 在编程语言中C++是优秀的语言吗?
        System.out.println(newContent);
        System.out.println(txt);
        String[] newSplit = txt.split("[.]");//[A班联系方式ShangHai, txt]
        System.out.println(Arrays.toString(newSplit));
        System.out.println("Hello".equals("Hello"));
        System.out.println("abc".compareTo("ABC"));// 32 a-A 按位置进行编码比较
        System.out.println("abc".compareTo("abcd"));// -1 a-A 按位置进行编码比较,比完比位数
​
        // 案例
        String str="this is a text";
        String[] s = str.split(" ");
        System.out.println(Arrays.toString(s));
        System.out.println(str.replace("text", "practice"));
        System.out.println(str.replace("text", "easy "+"text"));// 在某个单词位置插入(相当于代替)
        String newStr="";// 英文句子 首字母大写实现
        for (int i = 0; i < s.length; i++) {
            String first = Character.toString(s[i].charAt(0));//提取首字母
            String firstUpper = first.toUpperCase();// 首字母变大写
            String s1 = s[i].replaceFirst(first, firstUpper);//单词首字母替换
            newStr+=s1+" ";// 单词拼接
        }
        System.out.println(newStr);
​
//      3、StringBuffer StringBuilder 改变原来字符串,且计算速度大幅度提高
//       常用方法:String 类型的相互转换  append  insert replace delete
//        StringBuilder str=new StringBuilder("this is a text");//String 类型的相互转换
        StringBuffer strBuffer=new StringBuffer("this is a text");//String 类型的相互转换
        String strString = strBuffer.toString();// 转为String 类型
        System.out.println(s);
        System.out.println(strBuffer.append(" one"));//追加 this is a text one
        System.out.println(strBuffer);// this is a text one
        System.out.println(strBuffer.insert(9, " easy"));//插入 this is a easy text one
        System.out.println(strBuffer.replace(10, 15, ""));// 选择位置替换 this is a text one
        System.out.println(strBuffer.delete(str.length() - 4, str.length()));// 删除 this is a text
​
        //计算时间检测
        long currentTimeMillis = System.currentTimeMillis();
        StringBuffer strt=new StringBuffer();
        for (int i = 0; i < 100000; i++) {
            strt.append(i);
        }
        System.out.println("耗时"+(System.currentTimeMillis() - currentTimeMillis));// 耗时8 ms
​
        long currentTimeMillis2 = System.currentTimeMillis();
        String t="";
        for (int i = 0; i < 100000; i++) {
            t+=i;
        }
        System.out.println("耗时"+(System.currentTimeMillis() - currentTimeMillis2));//耗时6486 ms
    }
}
​
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值