码迷,mamicode.com
首页 > 其他好文 > 详细

String类

时间:2019-12-17 00:52:44      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:空白   sans   游戏   family   ping   soft   引用   返回   字符串切割   

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类

标签:空白   sans   游戏   family   ping   soft   引用   返回   字符串切割   

原文地址:https://www.cnblogs.com/xzwx668/p/12052081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!