文章目录
前言
今天让我们来了解一下Java中的String类的使用
一、String类概述
1.String类是一个由final关键字修饰的类,这个类不可以被继承.
2.字符串是常量,用双引号引起来表示,它们的值在内存中创建之后就不可以修改.
3.在java中多个字符组成的一串数据都会被归为(视为)String类的一个实例对象.
4.String对象的值一旦确定,值就不可以再次修改了,也就是值就不可变了,如果改变值就会创建一个新的对象(在底层也就是创建了一个新的数组).
二、String类对象
1.对象的创建
有四种方式
如下图
接下来我们由代码进入实例操作
package String;
import java.util.Scanner;
public class String01 {
public static void main(String[] args) {
//利用空参创造一个字符串对象
String s=new String();
System.out.println("#"+s+1);//String创建时系统默认值为空
// Scanner sc=new Scanner(System.in);
// String s=sc.next();
// System.out.println(s);
//利用字符串数组来创建字符串对象
char[] ch={'c','c','s','w'};
String s1=new String(ch);
System.out.println(s1);
//利用字节数组创建字符串对象
byte[] by={97,98,99,100,101};
String s2=new String(by);
System.out.println(s2);
//根据一个字符串创造一个新字符串
String s3=new String("abcf");
System.out.println(s3);
//直接赋值的方式获取一个字符串
String s4="abcde";
System.out.println(s4);
}
}
2.String内存图
其中String开辟的空间都在堆内存里面放着
三、String类的比较
基本数据类型和引用数据类型的比较方式不同
接下来我们来看代码实例
package String;
public class bijiao {
public static void main(String[] args) {
//创建两个字符串
String s1="abc";
String s2="abc";
//调用方法进行比较
//比较s1和s2的参数是是否完全一致
//如果完全一致返回ture否则返回false
boolean result = s1.equals(s2);
System.out.println(result);
//再创建一个字符串
String s3=new String("abc");
//同样进行比较
boolean result1 = s1.equals(s3);
//最后输出
System.out.println(result1);
//要想忽略大小写
String s4="Abc";
boolean result2 = s1.equalsIgnoreCase(s4);
System.out.println(result2);
}
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60447:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.bijiao
true
true
true
**当两个字符串赋值相同,说明他们的赋的地址值相同,好比代码中的s1和s2最后返回的结果为徒惹,说明他们的地址值相同
**
字符串和数组的长度的求法是不一样的
他们两的求法分别为
四、String类的遍历
1.方法一
接下来我们直接上代码更加直观一点
package String;
import java.util.Scanner;
public class bianli {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.next();
for(int i=0;i<str.length();i++)
{
char c=str.charAt(i);
//charAt()表示获取字符串的第i个元素的值
System.out.println(c);
}//返回char的遍历
}
}
运行结果为
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60542:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.bianli
abcdef
a
b
c
d
e
f
2.方法二
package String;
import java.util.Scanner;
public class bianli01 {
public static void main(String[] args) {
//将字符串拆分为字符数组
Scanner sc = new Scanner(System.in);
String str = sc.next();
//将字符串变成字符串数组
char[] arr = str.toCharArray();
//开始遍历
for (int i = 0; i < arr.length; i++)
{
System.out.println(arr[i]);
}
}
}
结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60561:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.bianli01
abcdef
a
b
c
d
e
f
这里可以看出两个方法的结果最终一样,大家可以根据选用适合自己的方法
五、String类的反转
话不多说直接上代码
package String;
import java.util.Scanner;
public class fanzhuan {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str1=sc.next();
String str2=reversal(str1);
System.out.println(str2);
}
//字符串的反转
public static String reversal(String str){
String s="";
for (int i = str.length()-1; i >= 0; i--) {
char c=str.charAt(i);
s=s+c;
}
return s;
}
//字符串的反转
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60598:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.fanzhuan
abcd
dcba
六、String类的切割
上代码!!!
package String;
import java.util.Scanner;
public class qiege {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//定义字符串
String str="123456---abcdef---546789";
//切割字符串
String []arr=str.split("---");
//输出字符串
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60624:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.qiege
123456
abcdef
546789
特别要注意切割方法split的使用
七、String类的切割
上!
package String;
import java.sql.SQLOutput;
import java.util.Scanner;
public class tihuan {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.next();
//调用String中的replace方法
String result=str.replace("TMD","***");
System.out.println(result);
}
}
注意在切割方法中需要导入import java.sql.SQLOutput;包
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60657:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.tihuan
TMD你玩的真菜
***你玩的真菜
八、String类的拼接
!
package String;
//String的拼接
public class pingjie {
public static void main(String[] args) {
int []arr={1,2,3};
String str=print(arr);
System.out.println(str);
}
public static String print(int []arr){
String str="[";
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){
str=str+arr[i];
}
else{
str=str+arr[i]+",";
}
}
str=str+"]";
return str;
}
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60681:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.pingjie
[1,2,3]
九、String类的截取
懒得说了家人们
package String;
import java.util.Scanner;
public class jiequ {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String phone = sc.next();
//输入一个电话号码
String start=phone.substring(0,3);
//截取电话号码的前三位
String end=phone.substring(7);
//截取电话号码的后四位
phone=start+"****"+end;
System.out.println(phone);
}
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60705:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day11 String.jiequ
1648262943
164****943
这是我的QQ大家有兴趣加一下
小结
以我浅薄的知识就只能写道这里了,今天的操作量有点大,最后还是祝大家天天开心