2022-07-20 第八小组 常竞文 String

String字符串

String一旦声明不可以改变

String既然是一个类,S1应该叫做String类的对象

类如果要创建对象,new,s1并没有new,s1也可以叫做对象

  String s1 = "abcdefg";
s2是通过new创建出来的String类的对象
创建对象是要调用构造器
String s2 = new String("abcdefg");
s1指向的abcdefg和s2指向的abcdefg不在同一个区域内
双等号比较的是虚地址
虚地址:对象在内存中的存储位置
  System.out.println(s1 == s2);
=赋值,无论怎么比较,都是true
new赋值,用双等号比较,就是false

比较字符串的内容

 equals方法:
    1.需要传参,传String类型的参数
    2.有,返回值是boolean类型
    3.访问权限public
 System.out.println(s3.equals(s4));

Length方法

1.不需要传参
2.有返回值,整型int
3.访问权限public
数组的length是属性,
字符串的length()是方法
  System.out.println(s1.length());
  System.out.println(arr.length);

 取出指定下标位置的字符

public static void main(String[] args) {
        String s1 = "abcdefg";
System.out.println(s1.charAt(0));
Scanner sc = new Scanner(System.in);
        char c = sc.next().charAt(0);
       字符串转int要+1
        System.out.println(c + 1);
    }

判断当前字符串是否存在

 public static void main(String[] args) {
        String s1 = "abcdefgabcdaaa";
        s1.indexOf('a');
        // 判断指定字符串是否存在,返回值为字符串在s1的下标
        // 返回从左到右遇到的第一个匹配的下标
        // 如果不存在。返回-1
        // indexOf(String,int)代表从int位置开始查找,包括当前位置
//        System.out.println(s1.indexOf("a",8));
        // 从后往前找
        System.out.println(s1.lastIndexOf("a",12));
    }

字符串的截取

 public static void main(String[] args) {
        // 字符串的截取
        String str = "abcdefghijklmn";
        /*
            如果传一个参数,从指定位置开始截取,直到字符串的末尾
            考虑一下?
            包不包括1位置的字符,包括起始位置的字符
            生成一个新的字符串,不会改变原有数据
         */
        String s = str.substring(1);
        // bc or b
        // 包含起始位置,不包含终止位置
        s = str.substring(1,2);
        System.out.println(s);
    }

返回一个新的字符串

// 转大写
        System.out.println(str.toUpperCase());
        // 转小写
        System.out.println(str.toLowerCase());
        // 判断是否以xxxx开头
        System.out.println(str.startsWith("a",2));
        // 判断是否以xxxx结尾
        System.out.println(str.endsWith("F"));
        // 忽略大小写进行比较内容
        // 验证码
        System.out.println(str.equalsIgnoreCase(str1));
        // 去掉字符串前后的空格
        System.out.println(str1.trim());
        // 根据指定的字符分割,分割之后,分割条件是消失
        String [] strings = str2.split(",");
//        System.out.println(Arrays.toString(strings));
        for (String string : strings) {
            System.out.println(string);

字符串的替换

public static void main(String[] args) {
 String str = "hello";
    System.out.println(str.replaceAll("l", "i"));
    }

数组转字符串

 int [] arr = new int[]{1,2,3,4,5};
int i= 10;
 把int类型转成字符串(推荐)
        String s = String.valueOf(i);
        s = new String(i);

字符串转数组

  String str = "abcdefg";
 转成字符型的数组
//        char[] array = str.toCharArray();
//        for (char c : array) {
//            System.out.println(c);
//        }
 // 转成字节型数组
        // 一般情况下,字节型数组在操作文件的时候常用的IO流
        byte[] bytes = str.getBytes();
        for (byte b : bytes) {
            System.out.println(b);
        }

包装器类型(包装类,封装类)

* byte          Byte
* short         Short
* int           Integer
* long          Long
* float         Float
* double        Double
* char          Character
* boolean       Boolean

原理:

(自动)装箱:把int类型包装成了包装器Integer类型。基本数据类型转换成对应的包装器类型

(自动)拆箱:把Integer类型转换成int类型。包装器类型转换成对应的基本数据类型

JDK5以后的新功能

  1. 自动装箱和自动拆箱
  2. 增强for循环(foreach)
  3. 枚举(switch case)

JDK7以后的新功能:

Switch...case可以用String

 自动装箱

Integer i2 = Integer.valueOf(50);

拆箱 

int ii2 = i2.intValue();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值