1.基础查找
左上角的框是java 所有的包(点击Java.lang)。
左下角的框是java.lang的包(点后,点里面的String)。
右边就会出现String
2.直接查询
点击显示,索引
java的内存模型
登录模拟比较
选中next ctrl+b更进源码(过程不重要,知道键盘输入是new出来的)
选中getCompleteTokenInBuffer 方法 接着ctrl + b
选中 group 方法 接着ctrl + b
选中 subSequence 方法 接着右键点
再选中subSequence 方法 接着ctrl+b
再次选中newString,接着ctrl+b
键盘输入是new 出来的
登录 对比字符串
public static void main(String[] args) {
String rightUserName = "aloudmei";
String rightPassword = "123456";
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入用户名");
String userName = scanner.next();
System.out.println("请输入密码");
String password = scanner.next();
if (userName.equals(rightUserName) && password.equals(rightPassword)) {
System.out.println("用户登录成功");
break;
} else {
if (i == 2) {
System.out.println("账号" + userName + "被锁定,请联系官方客服xxxx.xxxxxxx");
} else {
System.out.println("用户登录失败,用户名或密码有误,还剩下" + (2 - i) + "次机会");
}
}
}
}
//遍历字符串 外加记录大写小写数字的个数
public static void main(String[] args) {
//遍历字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String str = sc.next();
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z') {
smallCount++;
} else if (c >= 'A' && c <= 'Z') {
bigCount++;
} else if (c >= '0' && c <= '9') {
numberCount++;
}
}
System.out.println("小写字母有:" + smallCount + "个");
System.out.println("大写字母有:" + bigCount + "个");
System.out.println("数字有:" + numberCount + "个");
}
public static void main(String[] args) {
//无参对象(可添加)
StringBuilder sb = new StringBuilder();
//添加元素
sb.append(1);
sb.append(3.3);
sb.append(true);
//反转
sb.reverse();
//长度
int len = sb.length();
System.out.println(len);
//打印
//普及
//因为StringBuilder是Java已经写好的类
//java在底层对他做了一些特殊处理
//打印对象不是地址值是属性值
System.out.println(sb);
//变回字符串
String str = sb.toString();
System.out.println(str);
}
### 链式编程:
当我们在调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法
返回值一样
可以链式(串起来)
更方便更快捷
public static void main(String[] args) {
//创建对象
StringJoiner sj = new StringJoiner("--","[","]");
//添加元素
sj.add("aaa").add("bbbb").add("cccc");
//长度(包含字符)
int len = sj.length();
//打印
System.out.println(len);
System.out.println(sj);
}
自动调用main方法,执行main方法的 a直接赋值的,在栈和串池里面产生
a,在串池生成一个b,拼接的时候有变量参与,在堆新建一个StringBuilder()
通过append方法把s1和b都放到StringBuilder里,通过toString方法换成字符串ab
toString的过程
字符串和变量一次加至少会有两个对象一个是StringBuilder和String对象
把s2的内容和c放进去,最后toString 再创建一个新的字符串对象
r和String对象