Android_开发_Day13_String
Android_开发_Day13_String
目的:
了解Java中字符串的使用,以及怎么使用系统定义的方法来处理字符串。
技术:
<1> String:String定义的常量字符串是不可变的。”==“是比较两个对象是否相同,即存放的地址是否相同,而equals比较内容是否相同。String也是有构造函数的,因此可以用String str = new String();来创建字符串,但是里面是空,并且内容不可改变,那就没有意义了。当然可以使用字节数组创建一个字符串。字符串中我们常用到的方法有:charAt获取字符串中的一个字符,索引值也是从零开始的,记住不要越界哦。两个字符串的比较compareTo比较两个字符串的大小,str.compareTo(要比的字符串),返回大于0则比括号里的大,大多少就是几,反之就小于零,比较时按字典顺序。两个字符串的连接用concat。contains判断一个字符串是否包含另一个字符串。判断字符串是以什么结尾用endWith();同理以什么什么开头用startWith。比较两个字符串的内容是否相同用equals。indexof判断一个字符串在另外一个字符串中的位置,返回是第一次出现的位置,不存在返回值是-1。获取字符串的长度length。将字符串前面和后面前面和后面的空格删除trem();。
<2> 可变字符串:StringBuffer(线程安全,效率不高)和StringBuilder(线程不安全,效率高)。该字符串数组是,一个动态分配内存的数组,因此能够完成增,删,该,插的基本工作,分别对应方法append增,delete删,replace改,insert插,因为方法众多这里就只能让你们自己去百度,可以提供一个网址
技术如何使用:
我们可以模拟一个屏幕解锁的操作写一个小小的demo,用数字123456789来模拟表示图案解锁的9个点,用数字的排列顺序来表示图案绘制的顺序。进行输入操作时可以用空格隔开,但是问题就有了,由于用户绘制多少个点是不知道的,因此如果用数组来存放点的话就不知道用户的输入,因此就干脆用String,让终端读取一行字符串储存到字符串里面,然后可以使用字符串里面的trem方法来将多余的空格去掉,方便比较得出结果,比较的时候可以用equals方法,因此代码如下:
import java.util.Scanner;
public class ScreenLock {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String str;
while (true) {
System.out.print("请设置您的图案:");
str = scanner.nextLine();
str = str.trim();//去掉输入时的空格以防空格带来影响
System.out.print("请确您的图案:");
String str1 = scanner.nextLine();
if (!str.equals(str1.trim())) {
System.out.println("两次图案绘制不一致,请重新输入!");
}
else {
break;
}
}
System.out.println("密码设置成功!");
int i;
for (i = 0; i < 5; i++) {
System.out.print("请绘制图案:");
String str2 = scanner.nextLine();
if (str.equals(str2.trim())) {
break;
}
else {
System.out.println("密码错误请重新输入!");
}
}
if (i == 5){
System.out.println("你已经累计输入密码错误次数达到上限,程序已退出!!!");
}
else {
System.out.println("密码正确!");
}
}
}
实际使用效果:
批注 2019-08-13 192800.jpg总结:
String常用方法:
equals
charAt
compareTo
concat
contains
endsWith
startsWith
indexOf
length
substring
toCharArray
toLowerCase / toUpperCase
trim
StringBuilder常用方法:
append增
delete删
replace改
insert插