Scanner类:
构造方法:public Scanner(InputStream is)
字段:
public static final InputStrem in; 标准的输入流,对应着键盘的录入。
成员方法:
hasNextXxx:判断是否还有下一个选项。Xxx可以是int,double,如果是判断字符串,Xxx可以不写。
nextXxx:获取下一个输入选项。Xxx和上边的Xxx功能类似。
使用Scanner的时候可能出现的小问题:
public int nextInt(); 获取用户输入的数字
public String nextLine(); 获取用户输入的字符串
先接收用户输入的数值,然后来接收字符串,可能会出一个问题,字符串不让我们来输入了,怎么解决?
解决方法:
1、接收数值后,重新创建一个Scanner对象来接收字符串。(浪费空间,不推荐)
2、都用字符串来接收,然后把其中的一个转为数值。(Integer)
sc.nextInt(); // 123/r/n
sc.nextInt(); // 456/r/n
sc.nextLine();
String类:
1、字符串字面值也可以看做是一个字符串对象。
String str = "acb";
str = "bcd";
2、字符串(值)是一个常量,一旦赋值,就不能发生改变。
面试题:字符串一旦初始化就不能发生改变,这句话对还是错?说出原因。
对。 这里的初始化,指的是字符串的值不能发生改变,因为字符串是一个常量,
而字符串对象的引用可以发生改变。
构造方法:
String();
String(byte[] bys); 把字节数组转成字符串
String(byte[] bys, int index,int length); 把指定长度的字节数组转成字符串(从给定索引开始,到给定长度结束)
String(char[] chs);
String(char[] chs, int index,int length);
String(String s); //开发中我们不用,一般面试可能会问到。
方法区的常量池:
1、Java针对常量池,有一个优化机制。
2、常量池的特点:有就使用,没有就创建。
成员方法:
判断功能:首尾中空加判断
startsWith(String str);
endsWith(String str);
contains(String str);
isEmpty();
equals(Object obj); 判断字符串是否相等,区分大小写。 "A"和"a" 结果为false
equalsIgnoreCase(String str); 判断字符串是否相等,不区分大小写。 "A"和"a" 结果为true
案例:模拟用户登陆。
思路:
1、定义两个变量,分别来记录用户名和密码(默认给的)。
2、键盘录入,让用户输入用户名和密码。
3、哪到用户输入的数据和默认数据进行比较。
如果相同,提示登陆成功,循环结束。
如果不同,提示登陆失败,并且各处剩余登陆次数。
4、因为给定用户的登陆次数是3次,所以用for循环改进。
获取功能(截长取位取元素)
String substring(int index); 从指定位置开始,截取一个新的字符串。
String substring(int start,int end); 从指定位置开始,到指定位置结束,截取一个新的字符串。(包左不包右)
int length();
int indexOf(int ch); 从第一个字符开始,来找给定字符在字符串中第一次出现的位置。
实例: String s = "abcdefgd"; 中找d。
int indexOf(int ch, int fromIndex);
int indexOf(String str);
int indexOf(String str, int fromIndex);
lastIndexOf:功能和indexOf类似,只不过lastIndexOf是从后往前找。
char charAt(int index);
案例:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数,其他字符出现的次数
示例字符串:ABCDEabcd123456!@#$%^
思路:
1、定义四个统计变量(计数器),分别来记录大写字母,小写字母,数字以及其他符号的次数。
2、遍历字符串,拿到每一个字符。
3、依次判断当前遍历到的字符是哪种,是哪种,哪个字符的计数器+1。
4、循环结束后,输出各个计数器的值。
转换功能(大小拼串转数组)
了解:
String toUpperCase();
String toLowerCase();
String concat(String str);
掌握:
static String valueOf(char[] chs);
static String valueOf(int ch);
byte[] getBytes();
char[] toCharArray(); ---> 重点掌握
其他功能(去空替换字典排)
String trim(); 去除的是两端的空格。
String replace(char old, char new);
String replace(String old, String new);
int compareTo();
int compareToIgnoreCase();
String max = “woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma”; //大串
String min = “heima”; //小串 |
|