Java字符串简介
Java字符串是一种数据结构,是一个内容受限的线性表,简单来说,字符串就是一串字符。
例如:
String url = "https://mikechen.cc"; String webName = "mikechen的互联网架构";
Java字符串特点
- 字符串不可变,值在创建后不能被改变;
- 虽然String的值是不可变的,但是他们可以被共享;
- 字符串效果上相当于字符数组(char[]),但是底层原理是字节数组(byte[])。
Java字符串创建
1.直接赋值
示例:
String s = "mikechen";
此操作只会在字符串常量池,创建一个“mikechen”字符串,该值能在编译期就直接确定,因此只会在常量池创建。
2.new String创建
示例:
String s = new String("mikechen");
String创建的字符串存储在常量池,而 new 创建的字符串对象在堆上。
例如:
String s1 = "mikechen"; // String 直接创建 String s2 = new String("mikechen"); // String 对象创建
3.字符串拼接
字符串的链接:使用加号连接,从多项式出现字符串的位置开始后面的被视为字符串并连接。
示例如下:
String str1 = "mikechen"; System.out.println(str1+"的互联网架构");
Java字符串常用方法
1.比较字符串
比较一个字符串是否与另外一个字符串相同,这个操作在一些程序中经常用到,使用 equals() 来处理两个字符串。
语法格式:
public boolean equals(Object anObject)
具体示例如下:
String str1 = "mikechen"; String str2 = new String("mikechen"); String str3 = "MIKECHEN"; System.out.println(str1.equals(str2)); // 输出 true System.out.println(str1.equals(str3)); // 输出 false
还有一个是 equalsIgnoreCase() ,这个函数不考虑大小写。
示例如下:
String str1 = "mikechen"; String str2 = "MIKECHEN"; System.out.println(str1.equalsIgnoreCase(str2)); // 输出 true
2.字符串查找:charAt()
charAt() 方法的作用是按照索引值获得字符串中的指定字符。
示例如下;
String str = "mikechen"; System.out.println(str.charAt(1));
运行结果:i
3.字符串查找:indexOf()
有两种使用:
- indexOf(String str): 返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。
- indexOf(String str, int index): 返回从 index 位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。
示例如下:
String str = "01234567890123456789"; System.out.println(str.indexOf("123")); System.out.println(str.indexOf("123",5));
运行结果:1和11。
4.replace() 替换方法
字符串替换,用来替换字符串中所有指定的子串。
例如:
String str1 = "mikechen的互联网架构"; String str2 = str1.replace("mikechen", "陈睿"); System.out.println(str1); System.out.println(str2);
运行结果如下:
mikechen的互联网架构 陈睿的互联网架构
5.字符串拆分
public String[] split(String regex)
将此字符串拆分为给定的regular expression的匹配。
示例如下:
String str = new String("welcome-to-mikechen"); System.out.println("- 分隔符返回值 :" ); for (String retval: str.split("-")){ System.out.println(retval); }
运行结果如下:
- 分隔符返回值 : welcome to mikechen
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》