字符串String(java)

2021/5/16 22:25:10

本文主要是介绍字符串String(java),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

    • 创建字符串
    • 字符串常量池
    • 字符串的比较相关方法
    • 字符串的获取相关方法
    • 字符串的截取方法
    • 字符串的转换相关方法
    • 字符串的分割方法

创建字符串

java.long.String代表字符串。
字符串特点:
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);

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

byte[] byteArray={97,98,99};
String str=new String(byteArray);//等于abc

一种直接构造:

String str ="Hello";//这里没有new,也照样是字符串的对象。

字符串常量池

字符串常量池,程序当中直接写上的双引号字符串,就在字符串常量池中

对于基本类型来说,==是进行数值的比较。
对于引用类型来说,==是进行【地址值】得比较

String str1="abc"
String str2="abc";
char[] charArray={'a','b','c'};
String str3=new String(charArray);
System.out.println(str1==str2);//true
System.out.println(str1==str2);//false
System.out.println(str2==str3);//false

注意:
1.这里是引用类型的比较,所以是比较地址
2.双引号直接写的字符串在常量池当中,new的不在池当中,但都在堆当中。

字符串的比较相关方法

方法的调用都是在有类的变量后边加 . 再加该类有的方法名称

==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法
1.public boolean equals(Object obj);参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true,否则返回false。
备注:
(1).任何对象都能哟Object接收。
(2).equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样
(3).如果比较双方一个常量一个变量,推荐把常量字符串写在前面。
推荐:"abc".equals(str);不推荐:str.equals("abc");
因为有一种特殊:

String str =null;
str.equals("abc");

这种情况要报错,因为在调用方法的.之前是一个null,这个叫做空指针异常

String str1="abc"
String str2="abc";
char[] charArray={'a','b','c'};
String str3=new String(charArray);
String str4="Abc";
String str5=null;
System.out.println(str1.equals(str2));//str1和str2内容比较(true)
System.out.println(str2.equals(str3));//(true)
System.out.println(str3.equals("abc"));//true
System.out.println("abc".equals(str1));//true
System.out.println("abc".equals(str4));//false
System.out.println(str5.equals("abc"));//报错

2. public boolean equalsIgnoreCase(String str);忽略大小写进行内容比较。

String str1="Abc"
String str2="abc";
System.out.println(str1.equals(str2));//false
System.out.println(str1.equalsIgnoreCase(str2));//true

字符串的获取相关方法

常见的方法有:
1.public int length();获取字符串当中含有的字符个数,拿到字符串长度。
2.public String concat(String str);将当前字符串和参数字符串拼接成为返回值新的字符串
3.public char charAt(int index);获取指定索引位置的单个字符。(索引都是从0开始)
4.public int indexoOf(String str);查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值。

字符串的截取方法

1.public String substring(int index);截取从参数位置一直到字符串末尾,返回新字符串。
2.public String substring(int begin,int end);上一种的重载形式,截取从begin开始,一直到end结束,属于中间的字符串。**备注:[begin,end),包含左边,不包含右边。**如:begin=5,end=7,那么就要得到索引为5到6的字符串,长度为7-5等于2;

字符串的转换相关方法

1.public char[] toCharArray();将当前字符串拆分成为字符数组作为返回值。

char[] chars="abc".toCharArray();//这样可以单个单个处理数组元素
int len=chars.length//访问字符数组length就不加括号

2.public byte[] getBytes();获取当前字符串底层的字节数组。

byte[] bytes="abc".getBytes();
for (int i = 0; i < bytes.length; i++) {
	System.out.println(bytes[i]);
}//输出97 98 99

3.public String replace(CharSequence oldString,CharSequence newString);
将所有出现的老字符替换成为新的字符串,返回替换之后的结果新字符串。
备注:CharSequence意思就是说可以接受字符串类型。

String str1="aaaabbbbcccc";
String str2=str1.replace("a","x");
System.out.println(str2);//最后输出xxxxbbbbcccc

生活常用(网络社交敏感词过滤):

String str1="你个帅比";
String str2=str1.replace("帅比","**");
System.out.println(str2);//输出“你个**”

字符串的分割方法

public String[] split(String regex);按照参数规制,将字符串切分成若干个部分。
**注意:**split方法的参数其实是一个“正则表达式”。
如果按照英文据点“.”切分,必须写“\\.”(前面加两个反斜杠),因为这个点再正则表达式中有特殊的含义。

String str1="aaa,bbb,ccc";
String[] array1=str1.split(",");
for (int i = 0; i < array1.length; i++) {
	System.out.println(array1[i]);
}//输出aaa bbb ccc


这篇关于字符串String(java)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程