Java字符串(String)详解

Java字符串(String)详解-mikechen

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 对象创建

Java字符串(String)详解-mikechen

 

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年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法