String

字符串是常量,创建之后不可改变

字符串字面值存储在字符串池中,可以共享

package com.zhang.oop.Stri;
public class Demo01 {
    public static void main(String[] args) {
        String name = "Hello";  //产生一个对象,字符串池中存储
        name = "zhangsan";
        String name2 = "zhangsan";

        String str = new String("java");  //产生两个对象,堆,池各一个
        String str2 = new String("java");
        System.out.println(str==str2); //比较内存地址  false
        System.out.println(str.equals(str2)); //比较字符串
    }
}

1.常用方法

  1. charAt(int index); 返回某个位置的字符
  2. contains(String str); 判断是否包含某个字符串
  3. toCharArray(); 返回字符串对应的数组
  4. indexof(String str,Index int); 从int数值开始往后找,返回字符串首次出现的位置
  5. lastIndexof();返回字符串最后一次出现的位置
  6. trim(); 去掉字符串前后空格
  7. toUpperCase(); 把小写转成大写
  8. toLowerCase(); 把大写转成小写
  9. endsWith(str); 判断是否以str结尾
  10. startsWith(); 判断是否以str开头
  11. replace(); 用新的字符或字符串替换旧的字符或字符串
  12. split(); 对字符串进行拆分
package com.zhang.oop.Stri;
public class Demo01 {
    public static void main(String[] args) {
        String str = "Hello Word";
        System.out.println(str.charAt(3));   //l
        System.out.println(str.contains("plj"));  //false
        System.out.println(Arrays.toString(str.toCharArray())); //[H, e, l, l, o,  , W, o, r, d]
        System.out.println(str.indexOf("l")); //2
        System.out.println(str.indexOf("l",3));  //3
        System.out.println(str.lastIndexOf("l"));  //3
        System.out.println(str.trim());
        System.out.println(str.toUpperCase()); //HELLO WORD
        System.out.println(str.endsWith("rd")); //true
        System.out.println(str.startsWith("He"));  //true
        System.out.println(str.replace("l","e")); //Heeeo Word
        String[] arry = str.split("[ ,]+");//连续多个空格或者逗号
        for (String s : arry) {
            System.out.println(s);  //Hello Word(两部分)
        }
    }
}

2.可变字符串

StringBuffer:运行效率高,线程安全

StringBulider:运行效率快,线程不安全

package com.zhang.oop.Stri;
public class Demo02 {
    public static void main(String[] args) {
        StringBuffer str = new StringBuffer();
        str.append("java是最好的");
        str.append("java是最棒的");
        System.out.println(str);   //java是最好的java是最棒的
        str.insert(0,"最前面");
        System.out.println(str);   //最前面java是最好的java是最棒的
        str.replace(0,3,"hello");
        System.out.println(str);   //hellojava是最好的java是最棒的
        str.delete(0,6);
        System.out.println(str);   //ava是最好的java是最棒的
    }
}

3.Bigdecimal

package com.zhang.oop.Stri;
import java.math.BigDecimal;
import java.math.BigInteger;
public class Demo03 {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("1.0");
        BigDecimal bd2 = new BigDecimal("0.9");
        System.out.println(bd1.multiply(bd2)); //乘
        System.out.println(bd1.subtract(bd2));  //减
        System.out.println(bd1.add(bd2));   //加
        BigDecimal r1 = new BigDecimal(("1.4"))
                .subtract(new BigDecimal("0.5"))
                .divide(new BigDecimal("0.9"));  //混合运算:(1.4-0.5)/0.9
        System.out.println(r1);
        BigDecimal r2 = new BigDecimal("10")   //除法,保留两位小数,四舍五入。
                .divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
        System.out.println(r2);
    }
}

double 是近似值存储。

4.SimpleDateFormat

package com.zhang.oop.Stri;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter;
public class Demo04 {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
        Date date = new Date();
        String str = sdf.format(date);
        System.out.println(str);
        Date date2 = sdf.parse("2022年03月20日20:09:23");   //格式要对,不对的话要抛出异常
        System.out.println(date2);
    }
}

y---年 M----月 d----日 H----时 m---分 s---秒 S---毫秒

5.System类

package com.zhang.oop.Stri;
public class Demo05 {
    public static void main(String[] args) {
        long start = System.currentTimeMillis(); //可以测试程序跑了多长时间
        int[] arr ={1,4,3,6,8,2,6,5}; 
        int[] deat = new int[8];
        System.arraycopy(arr,3,deat,2,4);  //源数组,从哪个位置开始复制,目标数组,目标数组开始位置,复制的长度
        for (int i : deat) {
            System.out.println(i); // 0,0,0,6,8,2,6,0
        }
        long end = System.currentTimeMillis();
        System.out.println(start-end);
    }
}
posted on 2023-03-15 10:12  似初吖  阅读(26)  评论(0编辑  收藏  举报