API
API(Application Programming Interface):应用程序编程接口
API就是别人已经写好的东西,我们不需要自己编写。
Java API:指的就是JDK中提供的各种功能的Java类
这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。
已经学习过的API:Scanner、Random
API帮助文档:帮助开发人员更好的使用API和查询API的一个工具。
字符串String
字符串学习内容:String、StringBuilder、StringJonier、StringBuffer、Pattern、Matcher
String
字符串的内容是不会发生改变的,它的对象
在创建后不能被更改。
创建String对象的两种方式:
-
直接赋值:当使用双引号直接赋值时,系统会检查该字符串在串池(StringTable)中是否存在。不存在:创建新的;存在:复用。(简单,节约内存)
String name = "懒羊羊";
-
new:每new一个对象,就会开辟一块新的内存空间
构造方法 说明 public String() 创建空白字符串,不包含任何内容 public String(String original) 根据传入的字符串,创建字符串对象 public String(char[] chs) 根据字符数组,创建字符串对象 public String(byte[] chs) 根据字节数组,创建字符串对象
public class StringDemo01 {
public static void main(String[] args) {
//使用new的方法来获取一个字符串对象
//空参构造:可以获取一个空白的字符串对象
String s1 = new String();
System.out.println("@"+s1+"!"); //s1=="",没有任何内容,@!
//传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象
String s2 = new String("abc");
System.out.println(s2);//abc
//传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
//需求:要修改字符串的内容:abc->qbc
//abc->{'a','b','c'}->{'q','b','c'}->qbc
char[] chs = {'a','b','c','d'};
String s3 = new String(chs);
System.out.println(s3);//abcd
//传递一个字节数组,根据字节数组的内容再创建一个新的字符串对象
//应用场景:以后在网络中传输的数据其实都是字节信息
//我们一般要把字节信息进行转换,转换成字符串,此时就要用到这个构造了
byte[] bytes = {97,98,99,100};
String s4 = new String(bytes);
System.out.println(s4);//sbcd
}
}
Java的常用方法(比较):
- “==“号比的是什么?
- 基本数据类型:比较的是数据值;
- 引用数据类型(类、接口、数组):比较的是地址值。
- 字符串比较:
- boolean equals方法(要比较的字符串):完全一样结果才是true,否则为false;
- boolean equalsIgnoreCase(要比较的字符串):忽略大小写的比较。
public class StringDemo02 {
public static void main(String[] args) {
//1.创建两个字符串对象
String s1 = new String("abc");//堆地址
String s2 = "abc";//串池地址
//2.==号比较
//基本数据类型:比的是数据值
//引用数据类型:比的是地址值
System.out.println(s1 == s2);//false
//3.比较字符串对象中的内容是否相等
boolean result1 = s1.equals(s2);//完全相同才是true
System.out.println(result1);//true,若s2="Abc",则结果为false
//4.比较字符串对象中的内容是否相等,忽略大小写
//1 一 壹 不可以
//忽略大小写只能是英文状态下的a A
boolean result2 = s1.equalsIgnoreCase(s2);
System.out.println(result2);//true,若s2="Abc",结果也为true
}
}
练习:
/**
* 已知正确的用户名和密码,请用程序实现模拟用户登录,
* 总共给三次机会,登录之后,给出相应的提示
*/
public class StringDemo04 {
public static void main(String[] args) {
//读题拆解法
//1.定义两个变量,记录正确的用户名和密码
String rightUserName = "Jin";
String rightPassWord = "512512";
int count = 3;
//2.键盘录入用户名和密码
Scanner scanner = new Scanner(System.in);
do {
System.out.println("请输入用户名:");
String userName = scanner.next();
System.out.println("请输入用户名密码:");
String passWord = scanner.next();
//3.比较
if(userName.equals(rightUserName) && passWord.equals(rightPassWord)) {
System.out.println("用户登录成功!");
break;
}else {
count--;
if (count != 0) {
System.out.println("用户登录失败,用户名或密码有误,您还有"+count+"次机会,请重新输入!");
}else {
System.out.println("用户登录失败,用户名或密码有误,账号被锁定,请联系官方客服!");
}
}
}while(count > 0);
// for (int i = 0; i < count; i++) {
// System.out.println("请输入用户名:");
// String userName = scanner.next();
// System.out.println("请输入用户名密码:");
// String passWord = scanner.next();
//
// //3.比较
// if(userName.equals(rightUserName) && passWord.equals(rightPassWord)) {
// System.out.println("用户登录成功!");
// break;
// }else {
// if (count-i-1 != 0) {
// System.out.println("用户登录失败,用户名或密码有误,您还有"+count+"次机会,请重新输入!");
// }else {
// System.out.println("用户登录失败,用户名或密码有误,请您下次再尝试登录!");
// }
// }
// }
scanner.close();
}
}
说明:
以上笔记学习是学习b站黑马程序员时记下的笔记,仅限于帮助理解学习,不做任何其他商业用途。