API基础复习20210902

publicAPI

API(Application Programming Interface):应用程序编程接口

接口类就是提供给应用程序编程的接口,大家把这些类称之为API。

JavaAPI:指的是JDK中提供的各种功能的Java类

这些类把底层实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。

如何使用帮助文档

  1. 看构造方法

    有了构造方法就能创建对象了

  2. 看成员方法

    有了成员方法我们就可以使用

Scanner

创建Scanner对象

Scanner sc = new Scanner(System.in);

String s = sc.nextLine(); //接收字符串的方法

String str = sc.next();

区别:

next():遇到空格就不再录入数据了

结束标记:空格、tab键

nextLine()可以将数据完整的接收过来

结束标记:回车换行符

int num = sc.nextInt(); //接收int数字的方法

注意:

nextInt和nextLine方法配合使用的时候,nextLine就有机会使用了

建议:今后使用键盘录入数据的时候,如果是字符串和整数一起接收,建议使用next方法接收字符串

String

String类代表字符串,在java.lang包下,Java程序中所有的双引号字符串都是String这个类的对象

字符串是常量,在创建之后不能更改

注意:在java.lang包下就不用导包

常见的构造方法

  1. 创建空参数构造方法

    String s = new String();

    注意:String这个类比较特殊,打印其对象时不会出现内存地址,而是该对象所记录的真实内容

  2. 根据字符数组的内容来创建对象

    char[] chs = {'a','b','c'};

    String s = new String(chs); //abc (字符串就是字符串成的串儿)

  3. 根据传入的字符串来创建对象

    String s = new String(“hello”);

    这种方式实际上是创建了两个字符串对象

创建字符串对象的比较
  • 以""方式给出的字符串,只要字符序列相同,无论在程序代码中出现几次

JVM都只会建立一个String对象,并在字符串常量池中维护

(方法区中的)字符串常量池:当使用双引号创建字符串对象的时候,系统会检查字符串是否在常量池中存在

(注意:字符串常量池从JDK1.7从方法区移到了堆内存)

不存在:创建

存在:不会重新创建,而是直接复用

  • 通过new关键字创建的字符串对象,每new一次都会申请一块空间,虽然内容相同,但是地址值不同

String字符串的特点:

  • Java程序中所有的双引号字符串,都是String类的对象
  • 字符串不可变,他们的值在创建之后不能更改
  • 虽然String的值是不可变的,但是他们可以被共享

注意:在Java中使用+号拼接的时候,系统底层会自动创建一个StringBuilder对象,然后再调用append方法完成拼接

拼接后,再调用toString方法转为String类型

变量和常量拼接会:

String s1 = "abc";

String s2 = "ab" ;

String s3 = s2 + "c";   //变量和常量会触发StringBuilder拼接

Java语言提供对字符串串联符号“+”以及将其他对象转换为字符串的特殊支持。字符串串联是通过StringBuilder(或者StringBuffer)以及其append方法实现的,字符串转换是通过toString方法实现的。

String s1 = "abc";

String s2 = "a" + "b" + "c";

Java中存在常量优化机制,在编译的时候呀,会将"a"+"b"+"c"拼接为"abc"

字符串的比较

  1. equals方法

    String s1 = "abc";

    String s2 = "abs";

    boolean result = s1.equals(s2); //true

  2. equalsIgnoreCase()方法

    将此String与另一个String比较,不考虑大小写

    String s1 = "abc";

    String s2 = "ABC";

    boolean result = s1.equalsIgnoreCase(s2); //true

遍历字符串

public char charAt(int index):返回指定索引处的char值,字符串的索引也是从0开始的

public int length(); 返回此字符串的长度

遍历:

for(int i = 0;i < s.length;i++){

​ s.charAt(i); //就是指定索引处的字符值

}

String str =  "Hello";
for (int i = 0; i < str.length(); i++) {
    System.out.println(str.charAt(i));
}
/*************************************/
H
e
l
l
o

public char[] toCharArray():将当前字符串拆分为字符数组并返回

方法2:(重点掌握)

String str =  "Hello world";
        //将字符串拆分为字符数组
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }
/*************************************/
H
e
l
l
o
字符串截取

String substring(int beginIndex);

从传入的索引处向后截取,一直截取到末尾,得到新的字符串并返回

String substring(int beginIndex,int endIndex);

从beginIndex索引位置开始截取,截取到endIndex索引位置,得到新的字符串并返回(包含头不包含尾)

String str = "cloudcore";
//需求:想把core截取出来
 //方法1
 String result = str.substring(5); 
 System.out.println(result);    //core
 //方法2
 String sub = str.substring(5, 9);   //包含头不包含尾
 System.out.println(sub);    //core
字符串替换

String replace(char target,char replace);

将当前字符串中的target(被替换的旧值),使用replace(替换的新值)进行替换,返回一个新的字符串

 String str = "cloudcore";
 //需求:字符串替换
 String replace = str.replace("cloud", "shenma");
 System.out.println(replace);    //shenmacore
 //方法1
 String ss = "我TMD要淦死你个龟孙儿";
 //方法2
 String result = ss.replace("TMD", "优雅的");
 System.out.println(result);    //我优雅的要淦死你个龟孙儿
字符串切割

String[] split(String regex); //根据传入的字符串作为规则进行切割,将切割后的内容存入到字符串数组中,并将字符串数组返回

 String str = "张三,23";
 //需求:将有效数据进行切割返回
 String[] split = str.split(",");
 System.out.println(split[0]);//张三
 System.out.println(split[1]);//23
String方法小结

posted @ 2021-09-02 23:36  正在努力的澎澎  阅读(63)  评论(0)    收藏  举报