常用API
- 什么是API
应用程序编程接口
- java中的API
指的就是JDK中提供的各种功能的java类,这些类将底层的实现封装了起来,我们不需要关心这些类是怎么实现的,只需要学习这些类如何让使用即可,可以通过帮助文档学习API的使用
键盘录入字符串
Scanner类:
- next();遇到空格,就不再录入数据了,结束标记: 空格,tab键
- nextLine(); 可以将数据完整的接收过来, 结束标记回车换行符
代码实现:
package com.shizhanban.api;
import java.util.Scanner;
public class Demo1Scanner {
/*
next() : 遇到了空格, 就不再录入数据了
结束标记: 空格, tab键
nextLine() : 可以将数据完整的接收过来
结束标记: 回车换行符
*/
public static void main(String[] args) {
// 1. 创建Scanner对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入:");
// 2. 调用nextLine方法接收字符串
// ctrl + alt + v : 快速生成方法的返回值
String s = sc.nextLine();
System.out.println(s);
}
}
package com.shizhanban.api;
import java.util.Scanner;
public class Demo2Scanner {
/*
nextInt和nextLine方法配合使用的时候, nextLine方法就没有键盘录入的机会了
建议: 今后键盘录入数据的时候, 如果是字符串和整数一起接收, 建议使用next方法接受字符串.
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入整数:");
int num = sc.nextInt(); // 10 + 回车换行
System.out.println("请输入字符串:");
String s = sc.nextLine();
System.out.println(num);
System.out.println(s);
}
}
String类
概述:
- String类在java.lang包下,所以使用时不用导包
- String类代表字符串,java程序中所有的双引号字符串, 都是String类的对象
- 字符串不可变,他们的值在创建后不能被更改
String类的构造方法
常用的构造方法
方法名 | 说明 |
public String() | 创建一个空白字符串对象,不含有任何内容 |
public String(char[] chs) | 根据字符串数组的内容,来创建字符串对象 |
public String(String original) | 根据传入的字符串内容,来创建字符串对象 |
String s = “abc”; | 直接赋值的方式创建字符串对象,内容就是abc |
代码示例
package com.shizhanban.string;
public class Demo2StringConstructor {
/*
String类常见构造方法:
public String() : 创建一个空白字符串对象,不含有任何内容
public String(char[] chs) : 根据字符数组的内容,来创建字符串对象
public String(String original) : 根据传入的字符串内容,来创建字符串对象
String s = “abc”; 直接赋值的方式创建字符串对象,内容就是abc
注意:
String这个类比较特殊, 打印其对象名的时候, 不会出现内存地址
而是该对象所记录的真实内容.
面向对象-继承, Object类
*/
public static void main(String[] args) {
// public String() : 创建一个空白字符串对象,不含有任何内容
String s1 = new String();
System.out.println(s1);
// public String(char[] chs) : 根据字符数组的内容,来创建字符串对象
char[] chs = {'a','b','c'};
String s2 = new String(chs);
System.out.println(s2);
// public String(String original) : 根据传入的字符串内容,来创建字符串对象
String s3 = new String("123");
System.out.println(s3);
}
}
创建字符串对象的区别对比
- 通过构造方法创建
通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址值不同
- 直接赋值方式创建
以""方式给出的字符串,只要字符串序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象,并在字符串串池中维护
字符串的比较
- ==比较基本数据类型: 比较的是具体的值
- ==比较引用数据类型: 比较的是对象的地址值
String类 :public boolean equals(String s) 比较两个字符串内容是否相同,区分大小写
代码
package com.shizhanban.stringmethod;
public class Demo1Equals {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "ABC";
String s3 = "abc";
// equals : 比较字符串内容, 区分大小写
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
// equalsIgnoreCase : 比较字符串内容, 忽略大小写
System.out.println(s1.equalsIgnoreCase(s2));
}
}
小结
String类的常用方法
- public String replace(CharSequence target, CharSequence replacement)使用新值,将字符串中的旧值替换,得到新的字符串
- public int length()返回此字符串的长度
- public boolean equals(Object anObject)比较字符串的内容,区分大小写
- public boolean equalsIgnoreCase(String anotherString)比较字符串的内容, 忽略大小写
- public String substring(int beginlndex , int endlndex)根据开始和结束索引进行截取,得到新的字符串(包含头,不包含尾)
- public String substring(int beginlndex )从传入的索引处截取,截取到末尾,得到新的字符串
- public String[] split(String regex)根据传入的规则切割字符串,得到字符串数组
- public char[] toCharArray() 将字符串拆分为字符数组后返回
- public char charAt(int index) 返回指定索引处的char值
- trim() 去除字符串两侧的空格
获取字符串中的某一个字符
字符串.CharAt(字符下标)
String name="张三";
System.out.prinln(name.CharAt(1))
从字符串中截取字串 .subString();
使用场景:手机号脱敏
String name="我是奥特曼";
String substring = name.substring(2);
System.out.println(substring);
- 如果只传一个参数,代表从指定的数字直接截取到字符串最后
- 传两个参数,代表从指定的第一个数字一直截取到指定的第二个位置数字(包括开始,不包括结束)
字符串替换 .replace();
String name="这里是软件技术实战班";
String replace = name.replace("软件技术", "移动应用");
System.out.println(replace);
字符串截取成字串 .split();
String name="今天天气真tmd不错,挺好的,是时候出去溜达溜达了";
String[] split = name.split(",");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}
StringBuilder类
概述
StringBuilder是一个可变的字符串类,我们可以把它看成一个容器,这里的可变指的是StringBuilderer对象中的内容是可变的
StringBuilder类和String类的区别
- String类: 内容是不可变的
- StringBuilder类: 内容是可变的
StringBuilder类的构造方法
常用的构造方法
方法名 | 说明 |
public StringBuilder() | 创建一个空白可变字符串,不含有任何内容 |
public StringBuilder(String str) | 根据字符串的内容,来创建可变字符串对象 |
示例代码
public class StringBuilderDemo01 {
public static void main(String[] args) {
//public StringBuilder():创建一个空白可变字符串对象,不含有任何内容
StringBuilder sb = new StringBuilder();
System.out.println("sb:" + sb);
System.out.println("sb.length():" + sb.length());
//public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
StringBuilder sb2 = new StringBuilder("hello");
System.out.println("sb2:" + sb2);
System.out.println("sb2.length():" + sb2.length());
}
}
StringBuilder常用的成员方法
添加和反转方法
方法名 | 说明 |
public StringBuilder append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 返回相反的字符序列 |
示例代码
public class StringBuilderDemo01 {
public static void main(String[] args) {
//创建对象
StringBuilder sb = new StringBuilder();
//public StringBuilder append(任意类型):添加数据,并返回对象本身
// StringBuilder sb2 = sb.append("hello");
//
// System.out.println("sb:" + sb);
// System.out.println("sb2:" + sb2);
// System.out.println(sb == sb2);
// sb.append("hello");
// sb.append("world");
// sb.append("java");
// sb.append(100);
//链式编程
sb.append("hello").append("world").append("java").append(100);
System.out.println("sb:" + sb);
//public StringBuilder reverse():返回相反的字符序列
sb.reverse();
System.out.println("sb:" + sb);
}
}
StringBuilder和String相互转换
- StringBuilder转换为String
public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
- String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder
示例代码
public class StringBuilderDemo02 {
public static void main(String[] args) {
/*
//StringBuilder 转换为 String
StringBuilder sb = new StringBuilder();
sb.append("hello");
//String s = sb; //这个是错误的做法
//public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
String s = sb.toString();
System.out.println(s);
*/
//String 转换为 StringBuilder
String s = "hello";
//StringBuilder sb = s; //这个是错误的做法
//public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder
StringBuilder sb = new StringBuilder(s);
System.out.println(sb);
}
}
字符串拼接
简单的字符串拼接使用+号即可,但遇到复杂情况,一般使用StringBuilder进行字符串的拼接与构造工作