• String类、StringBuffer类


    String类

      字符串的本质是一个字符的数组。

      常量池:只要已将存在的就不会在创建了  

      String a="aaa"(看到“”就表示字符串本身对象) 有就不会创建,使用之前的内容和地址

      String s4 = new String("abc");会创建     因为new 不进常量池 会匹配常量池中相同内容的地址

      例:  

     1 public class Demo01 {
     2     public static void main(String[] args) {
     3         String str="aaa";
     4         str="bbb";
     5         System.out.println("str="+str);
     6         int a=1;
     7         a=2;
     8         System.out.println("a="+a);
     9         
    10         
    11         String s="abc";
    12         System.out.println("s="+s);
    13         String s2=new String("abc");
    14         System.out.println("s2="+s2);
    15     }
    16 }

      如图所示:

       常用构造方法

        1.获取字符串长度:str.length()

        2.截取打印字符串:str.substring(7);  str.substring(2,6);

        3.判断字符串开头结尾。返回值true或false

    public class Demo03 {
        public static void main(String[] args) {
            String str="I LOVE LUNENG";    
            //判断字符串开头结尾
            boolean flag=str.startsWith("a");
            System.out.println(flag);    
            System.out.println(str.endsWith("G"));
            }
    }            

        4.是否包含另一个字符串:str.contains("LUNENG")

        5.第一次出现该字符串的索引,没有就是-1 :str.indexOf("L")

        6.转成一个字符数组。或者字节数组。

    public class Demo03 {
        public static void main(String[] args) {
            String str="I LOVE LUNENG";
           byte[] ab=str.getBytes();
            for(int i=0;i<ab.length;i++){
                System.out.print(ab[i]+",");
            }
            System.out.println(str.getBytes());
            char[] aa=str.toCharArray();
            for(int i=0;i<aa.length;i++){
                System.out.print(aa[i]+",");
            }
            System.out.println(str.toCharArray());
            }
    }

        

        7.比较内容是否相等:str.equals(str2)     str.equalsIgnoreCase(str2);//忽略大小写

        8.替换:str2.replace("i love luneng"," HAHA")

      应用:

     1 public class Demo04 {
     2     public static void main(String[] args) {
     3         //获取指定字符串中,大写字母、小写字母、数字的个数。
     4         String str="Zhai113";
     5         int big=0;
     6         int small=0;
     7         int num=0;
     8         for(int i=0;i<str.length();i++){
     9             char a=str.charAt(i);
    10             if(a>='A'&&a<='Z'){
    11                 big++;
    12             }else if(a>='a'&&a<='z'){
    13                 small++;
    14             }else{
    15                 num++;
    16             }
    17         }
    18         System.out.println(big);
    19         System.out.println(small);
    20         System.out.println(num);
    21         System.out.println("=========================");
    22         //第一个字母转换成大写,其他字母转换成小写
    23         String str2="oRAcLE";
    24         String a1=str2.substring(0,1);
    25         String a2=str2.substring(1);
    26         System.out.println(a1.toUpperCase()+a2.toLowerCase());
    27         System.out.println("=========================");
    28         //查询出现“java”的次数。
    29         String str3="hellojava,nihaojava,javazhenbang";
    30         int count=0;
    31         int index=-1;
    32         while(str3.indexOf("java")!=-1){
    33             count++;
    34             str3=str3.substring(str3.indexOf("java")+1);
    35     
    36         }
    37         System.out.println(count);
    38     }
    39 }

      如图:

          

    StringBuffer类

      定义:

        StringBuffer str=new StringBuffer("你好啊");

      常用方法:

        1.相字符串缓冲区中添加字符串

          str.append("java").append(18).append(true);

        2.删除指定小字符串

          str.delete(3, 6);//包头不包尾

        3.插入字符串

          str.insert(3, "jack");  

        4.替换字符串

          str.replace(3, 8, "tom");

        5.反转字符串

          str.reverse();

      应用:

    public static String toString_2(int[] arr) {
                //{34,12,89,68}变 [34,12,89,68]
            StringBuffer sb = new StringBuffer();        
            sb.append("[");
            for (int i = 0; i < arr.length; i++) {
                if(i!=arr.length-1){
                    sb.append(arr[i]+",");
                }else{
                    sb.append(arr[i]+"]");
                }
            }        
            return sb.toString();
        }
  • 相关阅读:
    浅谈c/c++中的指针问题
    谈谈八大排序算法问题
    隐藏在default construct后面的是什么
    浅谈编译过程和符号表重定位问题
    1.在VC编译器下面为什么每个头文件以及源文件都要包含“stdAfx.h”,那么stdAfx.h中到底存放了什么,用来做什么?
    成长从今天开始
    正则表达式
    安装RPM包或者安装源码包
    文档的压缩与打包
    文本编辑工具
  • 原文地址:https://www.cnblogs.com/zhai113/p/11626099.html
Copyright © 2020-2023  润新知