API(Application Programming Interface):应用程序接口
首先需要了解帮助文档(以Random为例)
①右键打开该文档
②找到索引选项卡
③在输入框中输入Random
④看类在哪个包下
⑤看类的描述信息
⑥看构造方法
⑦看成员方法(重点看返回值,方法名和参数)
做一个API的使用类型
需求:按照帮助文档的使用步骤学习Scanner,获取键盘录入字符串数据
在帮助文档中我们发现String类型的数据需要使用nextLine()接收
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个字符串:");
//如果有明确的类型可以用Ctrl+Alt+V自动补全
String line = sc.nextLine();
//输出结果
System.out.println("你输入的字符串为" + line);
}
}
String的简单描述,软件包在java.lang下,是不需要导包的。java程序内的所有字符串文字都会被实现为此类的实例,换句话说就是java中所有双引号字符串,都是String类的对象
学习一个String类的构造方法,先来了解有哪些获取字符串方式
方法名 | 说明 |
---|---|
public String() | 创建一个空白字符串对象,不含有任何内容 |
public String(char[] chs) | 根据字符数组的内容,来创建字符串对象 |
public String(byte[] bys) | 根据字节数组的内容,来创建字符串对象 |
String s="abc"; | 直接赋值的方式穿件字符串对象,内容就是abc |
public class ScannerDemo {
public static void main(String[] args) {
//public String()创建一个空白字符串对象,不含有任何内容
String s1=new String();
System.out.println("s1:"+s1);
//public String(char[] chs) 根据字符数组的内容,来创建字符串对象
char[] chs={'a','b','c'};
String s2=new String(chs);
System.out.println("s2:"+s2);
//public String(byte[] bys) 根据字节数组的内容,爱创建字符串对象
byte[] bys={97,98,99};
String s3=new String(bys);
System.out.println("s3:"+s3);
//String s="abc"; 直接赋值的方式穿件字符串对象,内容就是abc
String s="abc";
String s4=new String(s);
System.out.println("s4:"+s4);
}
}
/*输出结果为
s1:
s2:abc
s3:abc
s4:abc
由于97,98,99为字节数组,在ASCII码中对应的字符为abc输出abc
* */
他们在内存中的特点
字符串的比较
使用==比较:
基本类型:比较的是数据值是否相同
应用类型:比较的是地址值是否相同
字符串是对象,它比较内容是否相同是通过一个方法来实现的,这个方法叫equals()
案例:用户登录
需求:已知用户名和密码,请用程序实现模拟用户登录,总共给三次机会,登录之后,给出相应得提示思路。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
String username = "abc";
String password = "123";
//要求在三次以上输入错误将不能登录
for (int i = 0; i < 3; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String name = sc.nextLine();
System.out.println("请输入密码");
String pwd = sc.nextLine();
//判断账号和密码是否一致
if (name == username && pwd == password) {
System.out.println("登录成功!");
//登录成功后直接跳出循环
break;
} else if (2 - i != 0) {
//显示还剩下的登录次数
System.out.println("你还有" + (2 - i) + "次机会");
} else if (2 - i == 0) {
System.out.println("你已经三次登录失败!");
//三次机会用完后直接跳出循环
break;
}
}
}
}