Java常用类(String类)

String

  • 字符串是常量,创建之后不可改变。
  • 字符串字面值存储在字符串池中,可以共享。
public static void main(String[] args) {
        //zhangsan存储在字符串池中
        String name = "zhangsan";
        //lisi赋值给name常量,并没有修改数据,
        // 而是重新开辟一个空间
        //name的引用指向lisi
        name="lisi";
        String name2 = "lisi";
    }
  • String s = "hello";产生一个对象,字符串池中存储
  • String s = new String("hello");产生两个对象,堆、池中各存储一个。栈中存放的是堆中的地址
 		//栈中存放的是堆的地址
        String str = new String("java");
        String str1 = new String("java");
        //equles在object类中比较的是地址,String类重写比较的是值
        System.out.println(str.equals(str1));//true
        System.out.println(str==str1);//false

常用方法

  • public int length():返回字符串的长度
  • public char charAt():根据下标获取字符
  • public boolean contains(String str):判断当前字符串中是否包含str
        //length():返回字符串长度
        //charAt(int index):返回某个位置字符
        //contains(String str):判断是否包含某个字符串
        String content = "java best";
        System.out.println(content.length());
        System.out.println(content.charAt(4));
        System.out.println(content.contains("ab"));
  • public char[] toCharArray():将字符串转换成数组
  • public int index0f(String str):查找str首次出现的下标,存在则返回下标;不存在则返回-1
  • public int lastIndex0f(String str):查找str最后一次出现的下标索引
        char[] chars = content.toCharArray();
        System.out.println(chars[0]);
        System.out.println(Arrays.toString(content.toCharArray()));
        System.out.println(content.indexOf("a",2));
        System.out.println(content.lastIndexOf("a"));
  • public String trim():去掉字符串前后的空格
  • public String toUpperCase()/toLowerCase():将小写转换成大写
  • public boolean end/startWith(String str):判断字符串是否以str结尾
  • public String replace(char oldChar,char newChar):将旧字符串替换成新的字符串
  • public String[] split(String str):根据str做拆分
        System.out.println(content.replace("java", "php"));
        //用空格和.拆分  +表示可以出现多个空格和.
        String[] s = content.split("[ .]+");
        System.out.println(s.length);
        for (String s1:s
             ) {
            System.out.println(s1);
        }
  • equalsIgnoreCase():忽略大小写的比较

  • compareTo():

    • 返回参与比较的前后两个字符串的asc码的差值,如果两个字符串首字母不同,则该方法返回首字母的asc码的差值。
    • 如果两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值。
  • subString():截取字符串

  • 将字符串每个单词首字母替换成大写

        String str = "this is a text";
        String[] s = str.split(" ");
        for(int i = 0;i<s.length;i++){
            char c = s[i].charAt(0);
            char c1 = Character.toUpperCase(c);
            System.out.println(c1 + s[i].substring(1));
        }

可变字符串

  • StringBuffer:可变长字符串,运行效率慢,线程安全
  • StringBuilder:可变长字符串,运行效率快,线程不安全
		public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        //1. append():追加
        sb.append("java is best");
        System.out.println(sb.toString());
        sb.append("java like");
        System.out.println(sb.toString());
        //2.insert():插入,可以在某个位置插入
        sb.insert(0,"szx");
        System.out.println(sb.toString());
        //3.replace()
        sb.replace(0,3,"sss");
        System.out.println(sb.toString());
        //4.delete():删除
        sb.delete(0,3);
        System.out.println(sb.toString());
        //5.reverse():反转
        sb.reverse();
        System.out.println(sb.toString());
        //6.清空
        sb.delete(0,sb.length());
        System.out.println(sb.toString());
    }
  • 效率对比,StringBuilder>StringBuffer>String
    public static void main(String[] args) {
        //开始时间
        long start = System.currentTimeMillis();
		//String s1 ="";
		//for (int i=0;i<99999;i++){
		//s1+=i;
		//}
        StringBuilder s1 =new StringBuilder();
        for (int i=0;i<99999;i++){
            s1.append(i);
        }
        System.out.println(s1);
        long end = System.currentTimeMillis();
        System.out.println("time:"+(end-start));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值