day_08 ApI、String类
文章目录
1. ApI
1.1API概述
-
什么是API
API(Application Programming Interface):应用程序编程接口 -
java中的API
-
值得就是JDK中提供的各种功能的Java类,这些类将低成的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用
1.2如何使用API帮助文档
- 打开帮助文档
- 找到索引选项卡中的输出框
- 在输入框中输入需要查询的包名称
- 看类的描述
- 看构造方法(类的构造方法是静态方法的话不用新建对象即可使用,如Math、Arrays)
- 看成员方法
按照文档对Scanner的描述,根据步骤创建一个Scanner案例
快捷键:创建var
command+option+v
注意:
除了nextLine这个方法可以接受回车键,其余都不能
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = 0;
System.out.println("请输入手机号码:");
// long phoneNum = sc.nextLong();
//1.用nextLine接收回车键
// sc.nextLine();
//2.新建一个sc来记录下一个要录入的数据
// sc = new Scanner(System.in);
//3.next方法不能接受空白字符 空格键、回车键、Tab
//String phoneNum = sc.next();
// System.out.println(phoneNum);
System.out.println("请输入密码");
String paw = sc.nextLine();
}
}
2.String类
2.1String概述
- String类在java.lang包下,所以使用时候不需要导包
- 在java中只要是用双引号引起来的内容就是一个字符串对象。eg:“a” “acb”
2.2字符串的特点
- 字符串一经创建就不可以改变
- 虽然不可以改变,到那时可以共享
- 效果上是一个字符数组,
String构造方法
语句 | 说明 |
---|---|
public String() | 创建一个空白字符串对象,不含有任何内容 |
public String(char[] chars) | 根据字符数组内容,来创建字符串对象 |
String s1 = new String(bys) | 根据字节数组的内容,来创建字符串对象 |
String s2 = “abc” | 直接赋值方式创建字符串对象 |
注意:直接输出字符串对象的时候 看到的不是地址,而是具体的内容
s 本身就是一个地址 之所以输出的内容不是地址 因为String底层修改了一个方法 toString();
2.3String对象的特点
1.通过new创建的字符串对象,每一次new都会申请一个内存
而String
2.4字符串的比较
使用==做比较
- 基本类型:比较的是数据值是否相同
- 引用类型:比较的是地址值是否相同
equals
用于比较字符串的内容
案例:遍历字符串
键盘录入一个字符串
遍历字符串,首先要能够获取到字符串中的每一个字符
遍历字符串,其次要能够获取到字符串的长度
- public int length():返回次字符串的长度
- 数组的长度:数组名.length
- 字符串的长度:字符串名.length()
字符串.charAt(i):获取字符串索引i处的字符
public class StringDemo {
public static void main(String[] args) {
//键盘输入字符串
String scStr = new Scanner(System.in).nextLine();
//遍历字符串
for (int i = 0; i < scStr.length(); i++) {
System.out.println(scStr.charAt(i));
}
}
}
测试类: main 需要使用static
封装类:不需要写static 如果是成员方法 就不需要static
案例:将一个数组{1,2,3}转换成字符串[1,2,3]后输出
@param arr 传入过来的数组,我们需要把这个数组转成指定的格式
@return 返回的就是拼接之后的结果
public class StringDemo06 {
public static void main(String[] args) {
int [] arr = {
1,2,3};
System.out.println(chars2str(arr));
}
public static String chars2str(int [] arr){
String str;
int i = 0;
str = "[";
for (i = 0; i < arr.length-1; i++) {
str += arr[i];
str +=",";
}
str +=arr[i];
str +="]";
return str;
}
}
案例:字符串反转
定义一个方法实现把任意一个字符串进行反转,并且返回到main方法中
例如:abc 调用方法得到 cba
需要参数吗? 传入一个字符串String
需要返回值吗? 返回一个字符串String
public class StringDemo10 {
public static void main(String[] args) {
String str = "abc";
String s = getString(str);
System.out.println(s);
}
public static String getString(String str) {
String s = "";
for (int i = str.length()-1; i >= 0 ; i--) {
s += str.charAt(i);
}
return s;
}
}
键盘录入字符串 sc.nextLine()->Scanner
字符串比较内容 equals(Object obj)
3.StringBuilder
StringBuilder是一个可变的字符串容器它进行字符串拼接的时候不会创建新的对象
为什么引入StringBuilder?
因为String是不可修改的,每次创建新的字符串对象时,会占用大量的内存,并且这个问题还不可避免,所以引入StringBuild
语句 | 说明 |
---|---|
public StringBulider() | 创建一个空白可变的字符串对象,不含有任何内容 |
public StringBulider(String str) | 根据字符串的内容,来创建可变字符串对象 |
注意:
StringBuilder里面的equals与String类型返回是false
StringBuilder里面的equals与StringBuilder同样的字符串返回是false
StringBuilder里面的equals比较的是地址值!!!
StringBuilder的添加和反转方法
语句 | 说明 |
---|---|
public StringBuilder append | 添加任意类型数据,并返回本身 |
public StringBuilder reverser | 字符串反转 |
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append(520);
sb.append("老童");
sb.append(1314);
System.out.println(sb);
sb.reverse();
System.out.println(sb);
}
}
3.4StringBuilder 与 String的相互转换
- StringBuilder转换为String
public String toString(),通过toString()就可以实现把StringBuilder转为String
public StringBuilder(String s)通过构造方法将String转为StringBulider
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append(520);
sb.append("老童");
sb.append(1314);
String str = sb.toString();
System.out.println(str);
StringBuilder reSb = new StringBuilder(str);
System.out.println(reSb);
}
}
Memorial Day is 390 days |