目录
前言
上期我们对比==和equals的区别时,我们用到了String这个类,今天就详细讲讲这个用途广泛的String类及他的两个兄弟,这期也是面试中经常会问到的问题。
一、创建字符串
最简单的方式:
String str = "abc";
我们也可以通过有参构造创建字符串对象
String str2 = new String("abc");
当然String还有很多构造方法可以用来创建字符串对象,比如可以用字符数组作为参数创建对象
char[] arr = {'a','b','c'};
String str3 = new String(arr);
二、字符串的操作
1.字符串的长度
String类中提供了length()这个方法用来求字符串的长度
代码如下(示例):
int length = str3.length();
//String类中提供的length()方法源码
public int length() {
return value.length;
}
2.字符串的拼接
字符串拼接最简单的做法通过"+",还可以用String本身自带的concat()方法
代码如下(示例):
String str1 = "学习Java";
String str2 = "真有趣!";
System.out.println(str1.concat(str2));
System.out.println(str1+str2);
//String中concat()方法源码
public String concat(String str) {
int otherLen = str.length();
if (otherLen == 0) {
return this;
}
int len = value.length;
char buf[] = Arrays.copyOf(value, len + otherLen);
str.getChars(buf, len);
return new String(buf, true);
}
String类因为是用final修饰的,所以定义的字符串都又不可改变性。
String str1 = "学习Java";
String str2 = "真有趣!";
str1.concat(str2);
System.out.println(str1);
System.out.println(str2);
System.out.println(str1.concat(str2));
输出结果:
可见不论对定义好的字符串进行什么操作,最后输出的字符串还是定义的值。
3.String中常见的方法
全部的方法可以去看一下string的api文档,我这里只把常用的给大家介绍一下
package com;
import com.entity.User;
import com.entity.Vip;
import java.util.Scanner;
public class demo1 {
public static void main(String[] args) {
String str1 = "学习Java";
//输出字符串固定位置的字符
char c = str1.charAt(1);
System.out.println(c);//习
//判断两个字符串的值是否相等
boolean b = str1.equals(str2);
System.out.println(b);//false
//判断字符串中是否包含某个字符
boolean b1 = str1.contains("J");
System.out.println(b1);//true
//取字符串某个位置之后的值
String str3 = str1.substring(2);
System.out.println(str3);//Java
//取字符串从某个位置到某个位置的值
String str4 = str1.substring(1,3);
System.out.println(str4);//习J
//取字符串从某个位置到某个位置的值,生成一个新的字符序列
CharSequence charSequence = str1.subSequence(1,3);
System.out.println(charSequence);//习J
//将字符串中的某个字符全部替换为另一个指定字符
String str6 = str1.replaceAll("a","o");
System.out.println(str6);//学习Jovo
//在字符串固定字符处进行分割
String[] str = str1.split("a");
System.out.println(str[0]+" "+str[1]);//学习J v
//判断字符串是否为空
str1.isEmpty();
//判断字符串是否以什么字符开始
boolean b2 = str1.startsWith("学");
System.out.println(b2);//true
String s = " h h h ";
//去掉字符串中开头和结尾的全部空格(字符串中间的空格不会去掉)
String s1 = s.trim();
System.out.println(s1);//h h h
}
}
总结
String这个类在日常开发中十分常用,它也有很多实用的方法,小伙伴们可以借助api文档,也可以直接看String类的源码熟悉他里边儿的那些方法的使用。感觉文章对你有帮助的小伙伴动动小手给笔者来个点赞关注评论三连!!!不胜感激!!