zoukankan      html  css  js  c++  java
  • String类系列(就是数组练习)

    String(不可变字符序列)

    常用方法

    equalsIgnoreCase        忽略大小写   System.out.println( "Abcd".equalsIgnoreCse("abcd"));

    indexOf                         索引    System.out.println( "Abcd".indexOf("b"));

    lastIndexOf                    反向索引  System.out.println( "Abcd".lastIndexOf("b"));

    startsWith       以什么开头 System.out.println( "Abcd".startsWith("Ab"));

    endsWith        以什么结束 System.out.println( "Abcd".endsWith("cd"));

    代码示例:

    package cn.String;
    
    public class TestString {
        public static void main(String[]args) {
            String str =new String("abcd");
            String str2=new String("abcd");
            System.out.println(str.equals(str2));  //比较内容是否相等     True
            System.out.println(str2==str);        //false
            
            System.out.println(str.charAt(3)); //查询内容
            
            String str3="def";
            String str4="def";
            System.out.println(str3.equals(str4));  //True
            System.out.println(str3==str4);            //True
            
            System.out.println(str3.indexOf('f'));  //2  查询索引号
            String s=str3.substring(1);                //截取字符串
            System.out.println(s);                  //有指定的打印字符串     
            String str5=str3.replace('e', 's');        //字符串替换
            System.out.println(str5);
            
            String str6="abcde,rrtt,cccee";
            String strArray[]=str6.split(",");   //用逗号使其分开转化为数组
            for(int i=0;i<strArray.length;i++) {
                System.out.println(strArray[i]);
            }
            
            String str7="  aa bb  ";
            System.out.println(str7.length());     //9
            String str77=str7.trim();              //切去没有用的部分
            System.out.println(str77.length());    //5
            
            System.out.println("Abc".equalsIgnoreCase("abc")); //true
            System.out.println("Abcdfb".indexOf('b'));           //1  查看索引号
            System.out.println("Abcdfbeb".lastIndexOf('b'));       //5 查询最后一个
            System.out.println("Abc".startsWith("Ab")); //true   以什么开始
            System.out.println("Abc".endsWith("c")); //true      以什么结束
            
            System.out.println("Abcdfbeb".toLowerCase());  //abcdfbeb 转化为小写   
            System.out.println("Abcdfbeb".toUpperCase());  //ABCDFBEB 转化为大写
            
            String gh="a";
    //注意:字符串拼接,一共11个对象,如果String gh=new String("a"),遍历后有12个对象,a是一个new String 也是一个.
            for (int i = 0; i < 10; i++) { 
                gh+=i;
            }
            System.out.println(gh);
            
        }
    }

    StringBuilder    StringBuffer(可变字符序列)

    两者源码几乎一样

    不同点:

    StringBuider:    线程不安全,效率高

    StringBuffer:     线程安全,效率低

    我们使用的是局部变量,一般使用StringBuilder

    示例:

    package cn.stringbuilder;
    
    public class Test01 {
        public static void main(String[] args) {
            StringBuilder sb=new StringBuilder();   //字符数组长度初始为16
            StringBuilder sb1=new StringBuilder(32);   //字符数组长度初始为32
            StringBuilder sb2=new StringBuilder("abcd");//字符数组长度为20  value[]={'a','b','c','d',u0000,u0000...}
            sb2.append("efg");
            sb2.append("sun").append(true).append("哈哈");//通过return this 实现方法链
            System.out.println(sb2);
            
            StringBuilder gh=new StringBuilder('a');  //'a'是一个对象,new StringBuilder是一个对象,总共两个对象.省内存.
            for (int i = 0; i < 100; i++) {
                gh.append(i);
            }
            System.out.println(gh);
            
        }
    }

    内存优化小总结:

    代码对比

    第一种 
    
    String gh="a";
    //注意:字符串拼接,一共11个对象,如果String gh=new String("a"),遍历后有12个对象,a是一个new String 也是一个.
            for (int i = 0; i < 10; i++) { 
                gh+=i;
            }
            System.out.println(gh);
    
    第二种
    
    
            StringBuilder gh=new StringBuilder('a');  //'a'是一个对象,new StringBuilder是一个对象,总共两个对象.省内存.
            for (int i = 0; i < 100; i++) {
                gh.append(i);
            }
            System.out.println(gh);

    推荐第二种,省内存。

  • 相关阅读:
    java实现第六届蓝桥杯表格计算
    form表单的几种提交方式
    web项目的文件上传和 下载
    Web应用中request获取path,URI,URL
    Tomcat之——内存溢出设置JAVA_OPTS
    请问set JAVA_OPTS的各项參数是什么意思?
    input上传图片并预览
    input标签前台实现文件上传
    Bootstrap之Form表单验证神器: BootstrapValidator(转)
    jQuery Validate验证框架详解
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11193797.html
Copyright © 2011-2022 走看看