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类的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用