轻松认识java中的String类

目录

String类

注意

compareTo和equals

compareToIgnoreCase

字符串查找

char charAt(int index):

int indexOf(int ch):

int indexOf(int ch, intfromIndex):

int indexOf(String str):

int indexOf(String str, intfromIndex):

int lastIndexOf(int ch): 

int lastIndexOf(int ch, intfromIndex):

所有的查找的例子:

字符串转化

1.数值和字符串转化:

2. 大小写转换:

3. 字符串转数组:       

数组转字符串:

4.格式化:

字符串替换

字符串拆分

拆分IP地址:

注意事项:

多次拆分:

字符串截取

字符串的不可变性


String类

        String表示字符串类型,属于 引用数据类型,不属于基本数据类型。

        String str = "hello";//没有\0结尾,存的是这个对象"hello"的地址,也是实例化对象

        System.out.println(str);//String一定会重写toString方法
注意

1.为什么 System.out.println(引用) 会自己自动调用toString()方法?

因为println()会调用String.valueOf()方法而String.valueOf()会调用toString()方法

下面是实例化:

        String str1 = new String();//任何一种类型都得调用自己的构造方法来实例化我们当前的对象

        System.out.println(str1);
        String str2 = new String("a");//也是实例化对象

        System.out.println(str2);
        char[] array = {'a', 'b', 'c'};

        String str3 = new String(array, 0, 1);

        //这样把一个字符数组转化成一个字符串了,也是实例化对象

        // 从0位置偏移1,拿了一个a,也可以从1开始偏移

        System.out.println(str3);


然后是String类的一些方法

     String s4 = "";//当前s4这个引用所指向的对象是空的,里面的字符是0

        System.out.println(s4.length());

        System.out.println(s4.isEmpty()); 

        //用于检查字符串是否为空,即它的长度是否为 0如果字符串长度为0,返回true,否则返回false

String s4 = "";//当前s4这个引用所指向的对象是空的,里面的字符是0

        System.out.println(s4.length());

        System.out.println(s4.isEmpty()); 

        //用于检查字符串是否为空,即它的长度是否为 0如果字符串长度为0,返回    true,否则返回false
        String s5 = null;//当前s5这个引用不指向任何对象

        //System.out.println(s5.length());

        System.out.println(s5.isEmpty());


compareTo和equals

   String s1 = new String("hello");

        String s2 = new String("abc");



        System.out.println(s1.equals(s2));//比较内容,返回值是true或者false



        //如果 s1 > s2 返回正数

        //如果 s1 == s2 返回0

        //如果 s1 < s2 返回负数

        //如果前面都一样,就比长度,不一样比较大小,不忽略大小写

        System.out.println(s1.compareTo(s2));

   

compareToIgnoreCase

        String s1 = new String("abc");

        String s2 = new String("Abc");



        System.out.println(s1.compareToIgnoreCase(s2));//忽略大小写

字符串查找

char charAt(int index):
        String s1 = "hello";

        char ch = s1.charAt(2);//想拿哪个就填对应的下标

        System.out.println(ch);

      String s1 = "hello";

        for (int i = 0; i < s1.length(); i++) {

            char ch = s1.charAt(i);//想拿哪个就填对应的下标

            System.out.println(ch);

        }

int indexOf(int ch):
        String s1 = "hello";

        int index = s1.indexOf('e');//打印字符的下标

        System.out.println(index);

int indexOf(int ch, intfromIndex):
        String s1 = "hello";

        int index = s1.indexOf("l",3);//从指定下标开始找

        System.out.println(index);

int indexOf(String str):
        String s1 = "hello";

        int index = s1.indexOf("ell");//跟上面意思差不多

        System.out.println(index);

int indexOf(String str, intfromIndex):
        String s1 = "hellohello";

        int index = s1.indexOf("ell",5);

        System.out.println(index);

int lastIndexOf(int ch): 
 String s1 = "hellohello";

        int index = s1.lastIndexOf('o');//倒着找

        System.out.println(index);

int lastIndexOf(int ch, intfromIndex):
String s1 = "hellohello";

        int index = s1.lastIndexOf('o',6);//倒着找

        System.out.println(index);

所有的查找的例子:
 public static void main(String[] args) {

            String s = "aaabbbcccaaabbbccc";

            System.out.println(s.charAt(3)); // 'b'

            System.out.println(s.indexOf('c')); // 6

            System.out.println(s.indexOf('c', 10)); // 15

            System.out.println(s.indexOf("bbb")); // 3

            System.out.println(s.indexOf("bbb", 10)); // 12

            System.out.println(s.lastIndexOf('c')); // 17

            System.out.println(s.lastIndexOf('c', 10)); // 8

            System.out.println(s.lastIndexOf("bbb")); // 12

            System.out.println(s.lastIndexOf("bbb", 10)); // 3


字符串转化

1.数值和字符串转化:
        String s = String.valueOf(19.9);

        System.out.println(s);//输出类型为19.9的字符串



        int data1 = Integer.parseInt("1234");

        double data2 = Double.parseDouble("12.34");

        System.out.println(data1);//输出类型为整形

        System.out.println(data2);
2. 大小写转换:
      String s1 = "hello";

        String ret = s1.toUpperCase();

        //转变为大写 不是在原来的基础上 转变 是转变大写后是一个新的对象

        System.out.println(s1.toUpperCase());

        // 大写转小写

        System.out.println(s2.toLowerCase());
3. 字符串转数组:
       
String s = "hello";

        // 字符串转数组

        char[] ch = s.toCharArray();

        for (int i = 0; i < ch.length; i++) {

            System.out.print(ch[i]);

        }

        System.out.println();

        // 数组转字符串

        String s2 = new String(ch);

        System.out.println(s2);

数组转字符串:
        char[] array = {'1', '2', '3'};

        String s = new String(array);

        System.out.println(s);

4.格式化:
        String s = String.format("%d-%d-%d", 2019, 9,14);

        System.out.println(s);


字符串替换

字符串拆分

拆分是特别常用的操作. 一定要重点掌握. 另外有些特殊字符作为分割符可能无法正确切分, 需要加上转义

拆分IP地址:

注意事项:

1. 字符"|","*","+"都得加上转义字符,前面加上 "\\" .

2. 而如果是 "\\" ,那么就得写成 "\\\\" .

3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符.

多次拆分:


字符串截取

注意事项:

1. 索引从0开始

2. 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标


字符串的不可变性

 所有涉及到可能修改字符串内容的操作都是创建一个新对象,改变的是新对象

 都是产生了新的对象,而不是对原来的对象进行修改,不是因为final,是因为私有的

final修饰类表明该类不想被继承,final修饰引用类型表明该引用变量不能引用其他对象,但是其引用对象中的内容是可以修改的

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值