12IDE工具JDK中常用apiWord文件下载.docx
《12IDE工具JDK中常用apiWord文件下载.docx》由会员分享,可在线阅读,更多相关《12IDE工具JDK中常用apiWord文件下载.docx(33页珍藏版)》请在冰点文库上搜索。
ctrl+D删除当前选中行
ctrl+1错误提示解决方案
ctrl+/添加/删除单行注释
ctrl+shift+/添加多行注释
ctrl+shift+\删除多行注释
2.String类
2.1.String类引入
第二天学习过Java中的常量:
常量的分类:
数值型常量:
整数,小数(浮点数)
字符型常量:
使用单引号引用的数据
字符串常量:
使用双引号引用的数据
布尔型常量:
true或false
null常量:
null
上述的大部分的常量都可以使用Java中提供的8种基本类型进行开辟空间,存储这些常量。
字符串常量不属于8种基本类型中的数据。
而它属于Java中的引用类型数据(类类型数据)。
字符串数据在Java中使用String类进行描述。
字符串数据它属于Java中一类数据,我们也可以把其看作一类事物。
既然是一类事物,就一定可以使用Java中的某个类对其进行封装和描述。
后期我们学习的目标和重点:
不再是如何去描述一个类(不是去定义类)。
而是要学习怎么去使用别人(JDK)中提供好的类。
需要知道这些类是干什么的,以及它中有哪些常用的方法,这些方法能够解决什么问题。
后期学习新的类的时候,学习方式:
重点是使用自己的代码去测试这些类中的方法,并得到自己的结论。
2.2.String类介绍
String类代表字符串。
Java程序中的所有字符串字面值(如"
abc"
)都作为此类的实例实现。
在Java中只要使用双引号引用起来的任何数据它们都是String的一个对象。
字符串是常量;
它们的值在创建之后不能更改。
因为String对象是不可变的,所以可以共享。
虽然使用双引号引用起来的数据都是字符串,也是String的一个实例对象,但是这个对象中的字符数据一定写完,就已经是一个固定的数据,不能再进行修改,并且它存储在方法区的字符串常量池中。
2.3.String类构造方法介绍
String类中提供了大量的构造方法,都可以将不同形式的数据转成字符串对象。
/*
*演示String类的构造方法
*/
publicclassStringConstructorDemo{
publicstaticvoidmain(String[]args){
method5();
}
/*
*面试题
publicstaticvoidmethod5(){
Strings="
;
Strings2=newString("
);
/*
*s和s2的区别?
*s它指向的方法区中的常量池中的abc字符串
*s2它指向的是堆中的自己new的那个对象,而在堆中这个对象中维护的地址
*指向的常量池中的abc字符串
*
*Strings="
在内存中只有一个对象
*Strings2=newString("
在内存中有2个对象
*/
System.out.println(s);
System.out.println(s2);
System.out.println(s==s2);
*演示将int类型的数组转成字符串
publicstaticvoidmethod4(){
int[]arr={23456,23457,23458};
Strings=newString(arr,0,3);
*String(byte[]bytes,intoffset,intlength)
*byte[]bytes:
指定需要被转成字符串的那个字节数组
*intoffset:
从字节数组的那个下标开始转数据
*intlength:
需要将从offset开始往后共计转多少数据
publicstaticvoidmethod3(){
byte[]b={97,98,99,100,65,49};
Strings=newString(b,4,4);
*演示String类中的有参数的构造方法
publicstaticvoidmethod2(){
//创建字节数组
//将字节数组中的所有数据转成字符串
Strings=newString(b);
*演示空参数的构造方法
*String()
publicstaticvoidmethod1(){
*使用String类的构造方法得到String对象
*使用空参数的构造方法创建出的String对象,这个对象在堆中
*而这个字符串对象中没有任何字符数据
Strings=newString();
}
2.4.String类常用方法
1、拼接字符串
猜测到某个功能之后,继续猜测它的方法参数以及返回值类型
参数:
有,至少2个。
实际值需要一个参数
返回值类型:
String,拼接后的新的字符串
2、根据字符找下标
3、根据下标找字符
4、字符串的长度
5、获取字符串中的一段子串
*演示String类中的截取方法
publicclassStringMethodDemo2{
传智播客.黑马程序员"
*substring(intbeginIndex)
*从指定的字符串中的beginIndex位置开始截取子串,一直到结束
*substring(intbeginIndex,intendIndex)
*从指定的字符串中的beginIndex位置开始到endIndex结束(不包含endIndex位置上的字符)
Stringss=s.substring
(2);
System.out.println(ss);
Stringss2=s.substring(0,5);
System.out.println(ss2);
6、字符串排序(本身没有)
但是可以自己书写类似的功能。
7、反转字符串(没有)
后面学习字符串缓冲区时介绍
8、判断2个字符串是否相同
9、数组转字符串
利用String类的构造方法可以完成
10、字符串转数组
//字符串转成字节数组
abdefg"
//转字节数组
byte[]bs=s.getBytes();
for(inti=0;
i<
bs.length;
i++){
System.out.println(bs[i]);
}
//字符串转字符数组
abcefg"
//转字符数组
char[]cs=s.toCharArray();
cs.length;
System.out.println(cs[i]);
11、其他的判断方法
判断指定的字符串是否在调用contains方法的那个字符串中。
Strings=”abcdefg”;
Strings2=“abc”;
booleanb=s.contains(s2);
判断s2这个字符串在s字符串中是否存在。
判断字符串是否以指定的字符串结尾。
Strings=“abc.java”;
booleanb=s.endsWith(“.java”);
12、其他的转换方法
将字符串中的所有字母转成小写
将字符串中的所有字母转成大写
valueOf方法是将其他类型的数据转成字符串。
2.5.String类方法练习
2.5.1.对字符串中的数据进行排序
*需求:
对字符串中的数据进行排序
*
*分析:
*需要一个字符串,将字符串转成字符数组。
*对数组遍历选择排序
*将数组转成字符串
publicclassStringTest2{
Strings="
aAZzBcDfPO"
StringsortedStr=stringSort(s);
System.out.println(sortedStr);
//对指定的字符串进行排序
publicstaticStringstringSort(Strings){
//将字符串转成数组
//使用选择排序
for(inti=0;
cs.length-1;
i++){
//外循环是提供数组中需要和后面比较的那个元素的下标
for(intj=i+1;
j<
cs.length;
j++){
//内循环是提供当前外环线下标后面剩余所有空间的下标
//判断
if(cs[i]>
cs[j]){
chartemp=cs[i];
cs[i]=cs[j];
cs[j]=temp;
}
}
//将数组转成字符串
Stringss=newString(cs);
returnss;
2.5.2.统计指定字符在字符串中出现的次数
统计指定字符在字符串中出现的次数
*需要取出字符串中的每个字符,和需要统计次数的那个字符进行比较,
*如果相同,就让计数器+1,如果不相同,继续取出下一个字符,以此类推。
*将字符串中的全部字符遍历完成,指定的字符个数就统一在计数器中。
publicclassStringTest{
asjdklafjklew4uiowrafn,dsfaksda"
charch='
z'
//需要计数器
intcount=0;
//使用循环遍历字符串
s.length();
//取出每个字符数据和需要统计的字符判断
charc=s.charAt(i);
if(c==ch){
count++;
System.out.println(ch+"
的次数是:
"
+count);
2.5.3.对字符串按照指定的内容切割,然后排序
对字符串按照指定的内容切割,然后排序
*必须有一个字符串。
absAdsfjsldjkfljsdlkf"
*使用空格对字符串进行切割:
*"
abs"
"
Adsfj"
sldjk"
fljs"
dlkf"
*切割之后,会得到多个字符串数据,需要对这些字符串进行排序。
*在Java中对字符串进行比较,有自己特定的规则:
*
*选择2个字符串,使用它们相同下标位置上的字符对应的数字进行比较,
*谁的数字大,这个字符串就大。
*在String类中提供的compareTo的方法,可以对2个字符串进行大小的比较
publicclassStringTest3{
absAdsfjsldjkfljsalkf"
//切割
String[]strs=s.split("
//排序
//Arrays.sort(strs);
strs.length-1;
strs.length;
if(strs[i].compareTo(strs[j])>
0){
Stringtemp=strs[i];
strs[i]=strs[j];
strs[j]=temp;
//将String数组转成字符串
//Stringss=Arrays.toString(strs);
Stringss="
strs.length;
ss=ss+strs[i]+"
2.5.4.把一个字符串按照长度递减截取
把一个字符串按照长度递减截取
*思路:
原串:
“abcde”
子串:
“abcde”
05
“abcd”“bcde”
0415
“abc”“bcd”“cde”
031425
“ab”“bc”“cd”“de”
02132435
“a”“b”“c”“d”“e”
0112233445
publicclassHomeWork7{
abcde"
//控制截取的次数
//负责提供截取子串的起始下标和结束的下标
for(intj=0,k=s.length()-i;
k<
=s.length();
j++,k++){
Stringsub=s.substring(j,k);
System.out.println(sub);
2.5.5.模拟trim方法
trim方法:
“abcbc”调用完trim方法之后得到的是“abcbc”
//模拟String类中的trim方法
publicclassHomeWork9{
abcdef"
//System.out.println(s.trim());
*只要获取到第一个不是空格字符的下标,和最后一个不是空格的下标
*使用String类中的substring截取出这两个下标位置中间的数据即可
intstart=0;
intend=s.length()-1;
//使用循环从前往后找第一个不是空格的字符下标
while(s.charAt(start)=='
'
){
start++;
//从后往前找第一个不是空格的字符
while(s.charAt(end)=='
end--;
}
Stringsub=s.substring(start,end+1);
System.out.println(sub);
2.6.String类方法总结
2.6.1.获取的方法
charcharAt(intindex)根据指定的下标,获取对应位置上的字符
intindexOf(intch)从前往后获取指定的字符第一次出现的下标,如果没有,返回-1
intindexOf(intch,intfromIndex)从指定的下标位置往后获取指定的字符第一次出现的下标,如果没有,返回-1
intindexOf(Stringstr)从前往后获取指定的字符串第一次出现的下标,如果没有,返回-1
intindexOf(Stringstr,intfromIndex)从指定的下标位置往后获取指定的字符串第一次出现的下标,如果没有,返回-1
Stringsubstring(intbeginIndex)从指定的位置开始截取字符串到结束位置
Stringsubstring(intbeginIdex,intendIndex)从beginIdex开始截取到endIndex位置
intlastIndexOf从后往前获取字符或者字符串出现的下标
intlength()获取字符串的长度
2.6.2.判断的方法
equals判断2个字符串是否相同
equalsIgnoreCase(StringanotherString)忽略大小写比较2个字符串是否相同
endsWith判断是否以指定的字符串结尾
startsWith判断是否以指定的字符串开始
contains判断是否包含指定的字符串数据
compareTo可以比较2个串的大小
isEmpty判断字符串中的字符个数是否为零,也就是在判断字符串对象是否为空
Strings=“”;
Strings=newString();
Strings=null;
根本就没有String对象
2.6.3.转换的方法
String(byte[]b)使用构造方法可以将字节数组转成字符串
String(char[]c)使用构造方法将字符数组转成字符串
String(int[]a,intoffset,intlen)将int类型的数组转成字符串
valueOf也可以将其他类型的数据转成字符串
getBytes将字符串转成字节数组
toCharArray将字符串转成字符数组
toUpperCase将字符串中的所有小写字母转成大写字母
toLowerCase将字符串中的所有大写字母转成小写字母
2.6.4.其他的方法
split使用指定的字符串将原串切割成多个子串
trim取出字符串前后的空格
3.Comparable接口
3.1.Comparable接口引入
在实际生活中经常需要对某两个对象进行大小的比较。
而生活中的任何事物或者对象最后都会被抽象成Java引用中的类进行封装和描述。
任何对象都可以需要比较大小,于是Java就把对象比较大小的这个功能抽象到接口中,使用这个接口来规范Java中任意对象应该如何去比较大小。
Java中定义了Comparable接口,使用这个接口来规定2个对象应该如何比较大小。
3.2.Comparable接口功能介绍
Comparable接口它存在的本质是规定2个对象如何比较大小的。
在Comparable接口中的compareTo方法是真正实现2个对象的大小比较的。
结论:
以后如果需要某个类的对象具备比较大小的功能,这个类就应该实现Comparable接口,并且实现其中的compareTo方法。
3.3.Comparable演示
*演示Comparable接口的应用
*需求:
需要对两个Person对象进行大小的比较
*分析:
只要Person类具备比较大小的功能,那么不管谁来使用Person类
*创建的Person对象都自然而然可以比较大小了
classPersonimplementsComparable{
privateStringname;
privateintage;
//alt+shift+s
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){