概述
一、String类概述
1. 字符char 一个字符 '' 字符串 String 一个或多个 ""
2. String是引用数据类型,属于java.lang包
3. 编码表 ascii unicode
4. Java语言支持unicode
二、构造方法
空构造 public String()
String s1=new String();
System.out.println(s1);
输出结果为空。
参数为字符串 public String(String s)
String s2=new String("hello"); //String s2="hello";
System.out.println(s2);
输出结果为 hello
参数为字节数组 public String( byte[] bytes ) 转换
byte[] t={97,98,99,'d'}; //byte b='d';
String s3=new String(t);
System.out.println(s3);
输出结果为 abcd 它是将byte数组类型转化为ASCII
表对应的字符
参数为字符数组 public String( char[] value ) 转换
char[] c={'a','b','c',100}; //char d=100;
String s4=new String(c);
System.out.println(s4);
输出结果为 abcd 它是将char数组类型转化为ASCII
表对应的字符。
三、String是一个特殊的引用类型
1. 它支持两种写法:
String s="hello"; //s也是对象
String s=new String("hello");
注意:String s1="hello";
String s2="hello";
这时有三个对象 s1、s2、hello
2. 画内存分配图
- new String的内存分配图
- new和不new两种方式的内存分配
空
3.一个字符串常量可以直接当成一个对象去使用
四、+
1. 拼接字符串 只能拼接字符串
2. 如果一个字符串跟一个非字符串的进行拼接,那么Java会自动把非字符串的转 换成字符串,然后再进行拼接
3. 注意的是:使用+拼接字符串时的内存分配图(String对象是不可变的)
4. 即使String对象不是new出来的,那么在进行字符串拼接时也是每次都在堆 中新开辟内存空间
5. 字符串常量在拼接时,不会在堆中新开辟内存空间
(重点)
五、判断功能相关的方法
boolean equals(Object obj)
String s1="hello";
String s2=new String("HellO");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
输出结果为 false false ; equals比较的是内容区分大小写
boolean equalsIgnoreCase(String str)
String s3="hello";
String s4="Hello";
System.out.println(s3==s4);
System.out.println(s3.equalsIgnoreCase(s4));
輸出結果為 false true ;equalsIgnoreCase
比较的是内容不区分大小写
boolean contains(String str)
String s1="hello";
System.out.println(s1.contains("ho"));
输出结果为 false 这个方法是看“hello”中是否包含ho
记得不能分开,如果是he的话结果就是 true
boolean startsWith(String str)
System.out.println(s1.startsWith("he"));
输出结果是:true 这个方法是求输入的这个字符串是否
以你定义的这个字符串开头的!
这里就是看 “hello”是否以he开头
如果换成e 结果就为false了。
boolean endsWith(String str)
System.out.println(s1.endsWith("llo"));
输出结果为:true 这个方法是求输入的这个字符串是否
以你定义的这个字符串结尾的!
这里就是看 “hello”是否以lo结尾
如果换位ll 结果就为false了。
boolean isEmpty() "" null
s1="";
System.out.println(s1.isEmpty());
输出结果为:true 这个方法是看 s1这个字符串是否为""
如果是就为true
注意:null
1.null在Java中是作为常量存在的
2.它表示对象不存在
3.一个是可以作为初始值来用,一个是可以加快垃圾回收的速度
六、获取功能相关的方法
int length()
String s1="heloool";
System.out.println(s1.length());
输出结果为:7 这个方法是来求一个字符串的长度的。
char charAt(int index)
System.out.println(s1.charAt(0));
输出结果为 h 这个方法是用来输入字符串的某个字符的地址坐标来
输出这个坐标所对应的值;如果输入2的话输出应该为l。
int indexOf(int ch) 和int indexOf(String str);
System.out.println(s1.indexOf("he"));
输出结果为 0 这个方法是用来寻找输入的字符串(例如he)在当前字
符串(heloool)中首次出现的,首个字符的位置。
注意he要连写,并且不能为ho这种形式 他们都会
输出 -1
int indexOf(int ch,int fromIndex)和int indexOf(String str,int fromIndex)
System.out.println(s1.indexOf("l",4));
输出结果为 6 这个方法是用来寻找输入的字符串(例如l)在当前字
符串(heloool)中你定义的从哪个地址坐标(4)开始
出现的,首个字符的位置。
String substring(int start)和
String substring(int start,int end)
//// String substring(int start)
System.out.println(s1.substring(3));
输出结果为:oool 这个方法是为了求出 s1这个字符串中 从3开始
包括(3)这个坐标,开始输出字符串,一直到结尾。
// String substring(int start,int end)
System.out.println(s1.substring(2,5));
输出结果为 loo 这个方法是为了求出 s1这个字符串中 从2开始
包括(2)这个坐标,开始输出字符串,一直到5(不包括5
这个坐标)。
注意:java有两个原则 一、就近原则;二、顾前不顾后原则。
七、转换功能相关的方法
byte[] getBytes()
String s1="abcde";
byte[] b=s1.getBytes();
for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}
输出结果为:97 98 99 100 101(竖着写)
这个方法表示将一个String 类型的字符串转化为:byte
类型的数组;对应的值为ASCII表值。
char[] toCharArray()
char[] c=s1.toCharArray();
for (int i = 0; i < c.length; i++) {
System.out.println(c[i]);
}
输出结果为:a b c d e (竖着写)
这个方法表示将一个字符转变为数组 。
注意 数组类型为char
static String valueOf(char[] chs) //相当于 new String(char[] c)
String s2=String.valueOf(c);
System.out.println(s2);
输出结果为:abcde
这个方法是将c这个数组转化为字符串
static String valueOf(基本数据类型 i)
int j=100;
s2=String.valueOf(j); //s2=j+"";
System.out.println(s2+100);
输出结果为:100100
这个方法是将基本数据类型转化为字符串。
注意 : 我们一般将基本数据类型转化为字符串类型一般用
s2=j+"";
String toLowerCase()
String s3="hElLo";
System.out.println(s3.toLowerCase());
输出结果为:hello
这个方法是将字符串统一为小写形式。
String toUpperCase()
System.out.println(s3.toUpperCase());
输出结果为:HELLO
这个方法是将字符串统一为大写形式。
String concat(String str) “+”
String s4=s3.concat(",world");
System.out.println(s4);
输出结果为:hElLo,world
这个方法是将字符串进行拼接。
八、String类的其他功能
替换
String replace(String old,String new)
String s1="helloe";
s1=s1.replace("l", "123");
System.out.println(s1);
输出结果为:he123123oe
这个方法是将字符串中的l全部用123来替换。
分割 String[] split(String regex)
String s2="abcdeffcdtt";
String[] ss=s2.split("cd");
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i]);
}
输出结果为:ab eff tt(竖着写)
这个方法是从cd分割,且不要cd 其前与后都
分别存入数组。
去除字符串两端的空格 String trim()
String s3=" he llo world ";
s3=s3.trim();
System.out.println(s3);
输出结果为:he llo world
这个方法是将s3字符串两端的空格去掉!
s3=s3.replace(" ", "");
System.out.println(s3);
输出结果为:helloworld
注意: 用""来替换" " 这样就起到了删除效果
补充:
int lastIndexOf(int ch)
int lastIndexOf(int ch,int fromIndex)
int lastIndexOf(String s)
String s4="hello";
System.out.println(s4.indexOf("l"));
//输出为2 这个是从前向后找
System.out.println(s4.lastIndexOf("l"));
//输出为3 这个是从后向前找!
int lastIndexOf(String s,int fromIndex)
最后
以上就是清秀故事为你收集整理的重拾java基础(十二):java最常用类型String总结的全部内容,希望文章能够帮你解决重拾java基础(十二):java最常用类型String总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复