String类

String类

String类代表字符串
java程序中的所有字符串面值“如abc”都作为此类的 实例实现
程序中所有的双引号字符串,都是string类的对象(就算没有new 也照样是)
字符串的特点:
1. 字符串的内容永不可变
2. 正是因为字符串不可改变,所以字符串是可以共享使用的
3. 字符串效果上相当于是char字符数组,但是底层原理是byte字节数组。

创建字符串的常见3+1种方法:

三种构造方法
public String();创建一个空白字符串,不含有任何内容

String str = new String();

public String(char[ ] array):根据字符数组的内容,创建对应的字符串

char[] charArray = {'A','B','C'};
String str = new String(charArray);
System.out.println(str);//ABC

public String(byte[ ] array):根据字节数组的内容,创建对应的字符串

byte[] byteArray = {97,98,99};
String str = new String(byteArray);
System.out.println(str);//abc  97 98 99代表的字母字符串底层原理是字节数组

一种直接创建
直接写上双引号,就是字符串对象。

String str = "HelloWord"
字符串常量池

程序中直接写上的双引号字符串,就在字符串常量池中,new的不在常量池中。
对于基本类型来说,== 是数值的比较
对于引用类型来说,==是地址值的比较。

String str1 = "abc";//在字符串常量池中
String str2 = "abc";//在字符串常量池中

char[] charArray = {'a','b','c'};
String str3 = new String(charArray);//不在字符串常量池中

System.out.println(str1 == str2);//ture
System.out.println(str1 == str3);//false
System.out.println(str2 == str3);//false

在这里插入图片描述

字符串比较的相关方法

== 比较的是地址值
equals 比较字符串的内容,参数可以是任何对象 ,只有参数是一个字符串并且内容相同才会给true
a.equals(b)

String str1 = "hello";
String str2 = "hello";
char[] charArray = {'h','e','l','l','o'};
String str3 = new String(charArray);

System.out.println(str1.equals(str2));//ture
System.out.println(str1.equals(str3));//ture
System.out.println("hello".equals(str1));//ture

如果比较双方一个常量一个变量,推荐吧常量符号写到前面。

equalsIgnoreCase方法比较的时候不区分大小写
straA.equalsIgnoreCase(straB)

String strA = "java";
String strB = "Java";
System.out.println(strA.equals(strB));//false 区分大小写
System.out.println(strA.equalsIgnoreCase(strB));//false 忽略大小写
与获取相关的方法

public int length();获取字符串中含有的字符个数,拿到字符长度
public String concat (String str); 将当前字符串和参数字符串拼接成为新的字符串
public char chatAt(int index) 获取自定索引位置的单个字符
public int indexOf (String str) 查找参数字符串在本来字符串当中出现的第一次索引位置

//获取字符串长度
String length = "abcd".length();
System.out.println(length);//4
//拼接字符串
String str1 = "hello"
String str2 = "word"
String str3 = str1.concat(str2);
System.out.println(str3);//helloword
//获取指定索引位置的单个字符
char ch = "hello".charAt(1);
Syatem.out.println(ch) ;// e 在一号索引位置的字符
//查找参数字符串在本来字符串当中出现的第一次索引位置,如果根本没有,返回-1
String original = "helloword";
int index = original.indexOf(l);
System.out.println(index)//2    
字符串的截取方法

public String substring (int index) 截取从参数位置一直到字符串末尾
public String substring(int begin , int end) 截取begin开始从end结束的中间的字符串
截取的时候 左闭右开 包含左边不包含右边 变得只是地址值(创建了一个新的字符串) 字符串的内容不可改变

String str1 = "helloword";
String str2 = str1.substring(5);
String str3 = str1.substring(3,5);
System.out.println(str1);//helloword
System.out.println(str2);//word
System.out.println(str3);//ll
字符串转换相关方法

public char [ ]toCharArray( ) 将当前字符串拆分为字符数组
public char [ ]getBytes( ),获得当前字符串的字节数组
public String replace(CharSequence lidString,CharSequence newString)将所有出现的老字符串替换为新的字符串

//把当前字符串转换为字符数组
char[] chars = "Hello".toCharArray();
//把当前字符串转换为字节数组
byte[] bytes = "abc".getBytes();
//字符串的内容替换
String str1 = "How do you do";
String str2 = str1.replace(o,*)//把字符串中所有的o替换为*
System.ou.println(str1);//How do you do
System.ou.println(str2);//H*w d* you d*
分割字符串的相关方法

public String[ ] split (String regex)按照参数规则,将字符串切为若干部分
如果按照英文句点切割 必须写 \.

String str1 = "aaa,bbb,ccc";
String[] array1 = str1.split(,);//把字符串str1按照“,”分隔开,如果按照“.”分割,需要把 . 写成 \\.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值