String类

Posted xzwx668

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String类相关的知识,希望对你有一定的参考价值。

Java中所有字符串(如“abc”)都是此类的实现

 字符串是常量,他们的值在创建之后不能改变。字符缓冲去的支持可变的字符串。
 因为String对象是不可改变的所以可以共享
 字符串相当于是char[]字符数组,但底层与哪里是byte[]字节数组
常见3+1方式
  三种构造方法
public String();创建空白字符串
public String(char[] array)根据字符数组的内容来创建对应的字符串
public String(byte[] array)根据字节数组的内容来创建对应的字符串
直接创建""

public class String1 {
    public static void main(String[] args) {
        String str1 = new String();
        System.out.println("输出第一个字符串" + str1);//输出第一个字符串
        char[] charstring = {‘王‘, ‘二‘};
        String str2 = new String(charstring);//王二
        System.out.println(str2);
        byte[] bytestring = {97, 98, 99};
        String str3 = new String(bytestring);
        System.out.println("输入第三个字符串" + str3);//输入第三个字符串abc
        String str4 = "小李子";
        System.out.println("第四个字符串" + str4);//第四个字符串小李子

    }
}

2.常量池

String a="a";直接创建的在常量池new不在常量池
//对于基本类型==表示比较数据
//对于引用类型==表示比较地址
public class String2 {
    public static void main(String[] args) {
        String str1="abc";
        String str2="abc";
        char[]chars={‘a‘,‘b‘,‘c‘};
        String str3=new String(chars);
        System.out.println(str1==str2);//ture
        System.out.println(str1==str3);//false
        System.out.println(str2==str3);//false


    }
}

 

3.equals和equalsIgnoreCase

注意事项:
public boolean equals(Object obj):参数可以是任何对象,当参数是一个字符串并且内容一样是返回ture否则返回false

  1equals具有对称性a.equals(b)和b.equals(a)一般用来比较String类型数据。
  2.如果是一个常量和一个变量建议用常量点上一个变量
  3.因为当变量为null且常量在前会发生空指针异常NullPointerException
public boolean equalsIgnoreCase(String str):不区分英文大小写
public class String3 {
    public static void main(String[] args) {
        String str1="abc";
        String str2="abc";
        byte[]bytes={‘a‘,‘b‘,‘c‘};
        String str3=new String(bytes);
        System.out.println(str1.equals(str2));
        System.out.println(str1.equals(str3));
        System.out.println("abc".equals(str1));//建议用
        String str4=null;
        System.out.println(str4.equals(str1));//异常
        String str5="ABC";
        System.out.println(str1.equalsIgnoreCase(str5));

    }
}

 

4.String与获取相关的常用方法
public int length();//获取String的字符长度
public String concat(String str)把俩个字符串进行拼接
public char charAt(int index)获取当前索引值的单个字符
public int indexOf(String str)找出参数字符在本来字符的索引值如果没有返回-1
public String substring(int index)截取从参数到字符串完的字符串
public String substring(int begin, int end)截取从参数开始到结束的字符串,[begin,enf
public class String4 {
    public static void main(String[] args) {
        String str="fdgcgvuygyu";
        int length = str.length();
        System.out.println(length);
        String str2="Hello";
        String str3="Word";
        String concat = str2.concat(str3);
        System.out.println(concat);
        char c = str2.charAt(1);
        System.out.println(c);
        int i = concat.indexOf("llo");//2
        System.out.println(i);
        int i1 = concat.indexOf("55");
        System.out.println(i1);//-1
        String substring = concat.substring(2);
        System.out.println(substring);
        String substring1 = concat.substring(1, 5);
        System.out.println(substring1);


    }
}

5.String 中与转换有关系的方法

 

1.public char[] toCharArray()将字符串拆成字符
2.public byte[] getBytes()获取字符串的底层字节数组
3.public String replace(CharSequence oldString,CharSequence newString):
将出现的老字符串转化为新字符串
public class String5 {
    public static void main(String[] args) {
        String str="我拍的";
        char[] chars = str.toCharArray();
        System.out.println(chars[0]);
        for (int i = 0; i < chars.length; i++) {
            char aChar = chars[i];
            System.out.println(aChar);

        }
        String str2="ABC";
        byte[] bytes = str2.getBytes();
        for (int i = 0; i < bytes.length; i++) {
            byte aByte = bytes[i];
            System.out.println(aByte);


        }
        String str3="你会玩游戏吗?你个大傻逼";
        System.out.println(str3);
        String s = str3.replace("大傻逼", "***");
        System.out.println(s);
    }
}

 

6.字符串切割

 

public String[]split(String regex)按照参数规则将字符串切割成若干部分     split是一个正则表达式今后学习     当用"."来作为切割规则应写"\."
public class String6 {
    public static void main(String[] args) {
        String str="555,667,666";
        String[] split = str.split(",");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }
        String string="666.999.666";
        String[] split1 = string.split("\.");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }
    }
}

  

 

 


 

 

 

以上是关于String类的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码片段存储在 mongodb 中?

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

片段内的网格适配器不起作用

如何理解这段代码片段中的两对括号?

从Asynctask ONPostExecute调用片段方法

elasticsearch代码片段,及工具类SearchEsUtil.java