木舟0基础学习Java的第十一天(String,StringBuffer)

!StringBuffer和StringBuilder用法一样

!区别是:StringBuffer 线程安全 但是效率低

!              StringBuilder 线程不安全 但是效率高 

Striing和StringBuffer

String字符串遍历:

public class Demo01 {
    public static void main(String[] args) {
        //字符串遍历
        String s1="木舟0基础学习Java的第十一天";
        for(int i=0;i<s1.length();i++){
            char c=s1.charAt(i);
            System.out.println(c);
        }
        //查找大小写字符 数字字符 其他字符 一共出现几次
        String s2="ABCDEfghizk12345!?@$%^&*";
        int big=0;
        int small=0;
        int num=0;
        int other=0;
        for(int i=0;i<s2.length();i++){
            char c1=s2.charAt(i);
            //判断A-Z 65-90
            if(c1>=65&&c1<=90){
                big++;
                //判断 a-z 97-122
            }else if(c1>=97&&c1<=122){
                small++;
                //判断数字0-9 48-57
            }else if(c1>=48&&c1<=57){
                num++;
            }else{other++;}
        }
        System.out.println("大写字符"+big);
        System.out.println("小写字符"+small);
        System.out.println("数字字符"+num);
        System.out.println("其他字符"+other);
    }
}

String转换功能:

public class Demo02 {
    public static void main(String[] args){
        String s="ABBDAF";
        //将字符串转换为字节数组
        byte[] b=s.getBytes();
        System.out.println(Arrays.toString(b));//[65, 66, 66, 68, 65, 70]

        //字符数组
        char[] c=s.toCharArray();
        System.out.println(Arrays.toString(c));//[A, B, B, D, A, F]

        //将字符数组转换为字符串
        char[] c1={'我','爱','学','习'};
        String s1=String.valueOf(c1);
        System.out.println(s1);//我爱学习

        //将数字转换为字符串
        int a=12345;
        //方法1
        String s2=String.valueOf(a);
        System.out.println(s2);//12345
        //方法2
        String s3=""+a;//字符串拼接
        System.out.println(s3);
        //错误方法:String ss=a.toString();报错

        //将字符串转换为小写
        System.out.println(s.toLowerCase());//abbdaf
        //将字符串转换为大写
        System.out.println(s.toUpperCase());//ABBDAF

        //连接
        System.out.println(s.concat("abc").concat("123").concat("!?."));//ABBDAFabc123!?.
    }
}

两个案例:

   public static void main(String[] args){
        //将一个字符串首字母转成大写 其余转成小写
        String result="";
        String s="ymzNSZBD";
        for(int i=0;i<s.length();i++){
            char c=s.charAt(i);
            String s1=""+c;
            if(i==0){
                result+=s1.toUpperCase();
            }else{
                result+=s1.toLowerCase();
            }
        }
        System.out.println(result);//Ymznszbd
    }
  public static void main(String[] args) {
        //将数组转为字符串 得到"[1,2,3]"
        int[] arr = {1, 2, 3};
        String s="\"[";
        for(int i=0;i<arr.length;i++){
            if(i==arr.length-1){
                s+=arr[i];
                s+="]\"";
            }else{
                s+=arr[i];
                s+=",";
            }
        }
        System.out.println(s);//"[1,2,3]"
    }

String中的其他功能:

   public static void main(String[] args) {
        //String替换功能
        String s1=" 辽宁省,大连市 ";
        String s2=s1.replace("大连市","沈阳市");
        System.out.println(s2);// 辽宁省,沈阳市
        System.out.println(s2.replace('沈','朝'));//单字用单引号或者双引号都可以

        //去除头尾空格
        System.out.println(s1.trim());//辽宁省,大连市

        //比较首字母在字典中相差的数
        String s3="abc";
        String s4="Dcb";
        System.out.println(s3.compareTo(s4));//29
        System.out.println(s4.compareTo(s3));//-29
        //忽略大小写 然后 比较大小
        System.out.println(s3.compareToIgnoreCase(s4));//-3
    }

案例:

    public static void main(String[] args) {
        //字符串反转 通过键盘录入
      /* Scanner sc=new Scanner(System.in);
        System.out.println("请输入您想反转的字符串:");
        String s=sc.next();
        reverse(s);*/
        System.out.println("请输入您想反转的字符串:");
        String s=new Scanner(System.in).next();//匿名对象
        reverse(s);
    }
    public static void reverse(String s){
       for(int i=s.length()-1;i>=0;i--){
           System.out.print(s.charAt(i)+"");
       }
    }
}
    public static void main(String[] args) {
        //定义一个字符串 查找字符串中出现liaoning的次数
        String s="sadsaliaoninghgkghiuwliaoningashdbaliaoningda";
        String ss="liaoning";

        int add=0;
       while(s.indexOf(ss)!=-1){//判断想查找的字符串第一次出现处的索引 查找不到返回-1
            int a=s.indexOf(ss);//将索引赋值给 int a
            s=s.substring(a+ss.length());//截取索引值加ss长度的字符串 然后将截取后的字符串赋值给s
           add++;
       }
        System.out.println(add);
    }
 public static void main(String[] args) {
        String s="sadsa,liaoning,hgkghiuwli,aoningash,dbaliaoni,ngda";
        //将所有","替换成"  "空格
        String s2=s.replace(","," ");
        System.out.println(s2);
        //以空格为分割点 将它们分割
        String[] ss=s2.split(" ");
        for (int i=0;i<ss.length;i++) {
            System.out.println(ss[i]);
        }//sadsa
         //liaoning
         //hgkghiuwli
         //aoningash
         //dbaliaoni
         //ngda
    }

StringBuffer:线程安全的可变字符序列 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符

public static void main(String[] args) {
        StringBuffer sb=new StringBuffer();
        //获取容量
        int i=sb.capacity();
        System.out.println(i);//初始容量为16

        //获取实际里面装了多少元素
        int a=sb.length();
        System.out.println(a);//0 实际里面装了0个元素

        //在sb中添加了一个元素 相当于+
        StringBuffer sb1=sb.append("你好");
        System.out.println(sb1);//你好 底层重写了Object的toString()方法
        System.out.println(sb.append("123456789abcdefg"));//你好123456789abcdefg
        System.out.println(sb.length());//18 实际里面装了18个元素

        //34 当装入的容量超过初始容量 新的容量会翻倍 底层会重新创建一个 byte[34]数组
        System.out.println(sb.capacity());


        StringBuffer sb2=new StringBuffer(20);
        int i1=sb2.capacity();
        System.out.println(i1);//容量为20 如果设定了容量就是设定的容量 不然就是初始容量16

        StringBuffer sb3=new StringBuffer("abcde");
        int i2=sb3.capacity();
        System.out.println(i2);//容量为21 是在初始容量16的上面加5
    }

StringBuffer插入和删除

  public static void main(String[] args) {
     StringBuffer sb=new StringBuffer("abcd");
         //插入 insert 将z插入到索引为2的位置
         System.out.println(sb.insert(2,"z"));//abzcd
         //删除  deleteCharAt 将索引指定位置的元素删除
        System.out.println(sb.deleteCharAt(2));//abcd
        //删除  delete 将0-3索引元素删除(含头不含尾)
        System.out.println(sb.delete(0,3));//d
    }

StringBuffer替换和反转

 public static void main(String[] args) {
        StringBuffer sb=new StringBuffer("大连是一个宜居的城市");
        //替换replace 将0-2索引元素替换(含头不含尾)
        System.out.println( sb.replace(0,2,"沈阳"));//沈阳是一个宜居的城市
        //反转reverse
        System.out.println(sb.reverse());//市城的居宜个一是阳沈
    }

StringBuffer截取

 public static void main(String[] args) {
        StringBuffer sb=new StringBuffer("沈阳是一个宜居的城市");
        //截取 substring 从索引2开始截取到末尾
        String s=sb.substring(2);
        System.out.println(s);//是一个宜居的城市
        //从索引2截取到索引6
        String s1=sb.substring(2,6);//含头不含尾
        System.out.println(s1);//是一个宜
    }

StringBuffer和String互相转换

    public static void main(String[] args) {
        //String 转换 StringBuffer
        //构造方法 构造方法 toString()
        //subString(0,length)
        StringBuffer sb=new StringBuffer("努力学习");
        String s1=sb.toString();
        System.out.println(s1);
        String s2=sb.substring(0);
        System.out.println(s2);


        //StringBuffer 转换 String
        //StringBuffer(String s)
        //append()
        String s="我爱学习";
        StringBuffer sb1=new StringBuffer(s);
        System.out.println(sb1);
        StringBuffer sb2=new StringBuffer();
        StringBuffer sb3=sb2.append(s);
        System.out.println(sb3);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值