javaSE21/9/14

String常用方法

public class Test {
    public static void main(String[] args) {
        String content = "   张三是个 好人Oya";
        //1.length方法返回字符串的长度
        System.out.println(content.length());
        //2.char(int index)At返回某个位置的字符
        System.out.println(content.charAt(2));
        //3.contains(String str)判断是否包含某个字符串
        System.out.println(content.contains("好人"));
        //4.toCharArray()方法返回字符串对应的数组
        System.out.println(Arrays.toString(content.toCharArray()));//toString将数组变成字符串
        //5.indexOf()返回字符串首次出现的位置
        System.out.println(content.indexOf("三"));
        //6.lastIndexOf()返回字符串最后一次出现的位置
        System.out.println(content.lastIndexOf("个"));
        //7.trim()去掉字符串前后的空格在,中间的不会去掉
        System.out.println(content.trim());
        //8.toUpperCase()将小写西转成大学
        System.out.println(content.toUpperCase());
        //9.endWith()判断字符串是否以str结尾
        System.out.println(content.endsWith("a"));
        //10.replace()将旧字符转换成新字符
        System.out.println(content.replace("张三","李四"));
        //11.split()根据str做拆分
        String[] arr = content.split("[ ,]");//以空格来拆分,之后存入arr数组里,在【】里写表示空格或者,
        System.out.println(arr.length);//输出数组的长度,即被空格拆分成了几部分
        for (String string : arr){//遍历数组里的元素
            System.out.println(string);
        }
        //equals比较是否相等,compareTo比较大小
        String n1 = "hello";
        String n2 = "Hello";
        System.out.println(n1.equals(n2));//返回false
        System.out.println(n1.equalsIgnoreCase(n2));//返回true,忽略大小写的比较
        String n3 = "abc";
        String n4 = "xyz";
        String n5 = "abcdef";
        System.out.println(n3.compareTo(n4));//输出-28,为97-120
        System.out.println(n3.compareTo(n5));//输出-3,用n3的长度减去n5的长度
        /*
        返回n3-n4的值,先第一个字符相减,如果相等再比第二个字符
        否则直接输出值,如果其中一个包另一个数,就是长度相减
         */
    }
}

可变字符串

StringBuffer和StringBuilder

  • StringBuffer和StringBuilder都是可变长字符串,前者运行效率慢,但线程安全,后者运行效率相对快,线程不安全,单线程可以用StringBuilder

两者与String的区别

  • 效率比String高
  • 比String节省内存

StringBuffer和StringBuilder的四种方法

public class Test {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        //1.append();追加
        sb.append("张三是好人");//给sb赋上字符串
        System.out.println(sb.toString());//将sb输出
        sb.append("但你不是");//在之前的基础上新加字符串
        System.out.println(sb.toString());
        //2.insert()添加,插入
        sb.insert(5,",");//在索引5的位置添加逗号
        System.out.println(sb.toString());
        //3.replace()替换
        sb.replace(0,2,"李四");//将索引0到1的位置替换成李四(含头不含尾)
        System.out.println(sb.toString());
        //delete()删除
        sb.delete(6,10);
        System.out.println(sb.toString());
        //清空
        sb.delete(0,sb.length());
    }

} 

BigDecimal类

  • 在精度非常高时使用,该类位于java.math包当中,该类可以精确计算浮点数
  • BigDecimal.ROUND_HALF_UP表示四舍五入
public class Test {
    public static void main(String[] args) {
        double n1 = 1.0;//double采用近似值的存储方式
        double n2 = 0.9;
        System.out.println(n1-n2);//输出0.099999...
        //BigDecimal是精确存储
        BigDecimal bd1 = new BigDecimal("1.0");
        BigDecimal bd2 = new BigDecimal("0.9");
        //subtract方法为减法运算,加法为add
        BigDecimal bd3 = bd1.subtract(bd2);
        System.out.println(bd3.toString());
        //乘法multiply
        BigDecimal bd4 = bd1.multiply(bd2);
        System.out.println(bd4);
        //除法divide
        BigDecimal bd5 = new BigDecimal("10").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
        //除不尽时要写上保留几位小数,采用什么方法。上面是保留2位小数,采用四舍五入
        System.out.println(bd5);
    }

}
posted @ 2021-09-14 17:00  想吃坚果  阅读(40)  评论(0)    收藏  举报