这一天的东西基本上把我废了,怎么才能高效的学习这么多的东西,
String类:
概述:多个字符组成的一串数据。
构造方法:
空参:String()
带参:
参数是字节数组
String(byte[] bys)
String(byte[] bys,int index,int length)
参数是字符数组
String(char[] chs)
String(char[] chs,int index,int length)
参数是字符串
String(String str)
直接给字符串对象赋值(最最常用的用法)
空串和null有什么区别?
空串:有对象的。只不过值是""
null:是没有对象的。
面试题:
1、字符串,数组和集合分别如何获取长度?
字符串:length()
数组:length属性
集合:size()
2、怎么理解字符串一旦被创建就不能改变,这是一个常见的面试题。
这句话是对的。
不能被改变指的是 字符串在字符串常量池中的值不能发生改变。
而不是指的字符串的引用不能发生改变。
String s = "abc";
s = "abcd"
3、 String s1 = new String(“abc”);
String s2 = “abc”;
s1和s2有区别吗?
有区别。
s1在内存中有两个对象(堆一个,字符串常量池一个)
s2在内存中只有一个对象(字符串常量池中)
常用方法:
判断功能:(首尾中空加判断)
startsWith(String str);
endsWith(String str);
contains(String str);
**isEmpty(); 判断字符串对象是否为空(空串)。
**equals(Object obj); //区分大小写,因为是重写Object类中的equals方法,所以形参是Object类型。
equalsIgnoreCase(String str); //忽略大小写的。
练习题:
模拟登录,从控制台输入用户名密码,如果用户名密码正确的话,提示登陆成功,否则提示登陆失败。登陆过程中只能尝试3次。
思路:
1、要模拟登陆,必须已存在用户名和密码。
2、键盘录入,让用户输入用户名和密码。
3、把两组数据进行比较。
匹配:提示登陆成功。
可以把咱们以前讲的猜数字的游戏的代码放这儿。
不匹配:提示还有几次机会,并让用户接着输入。
4、因为只让用户尝试3次,所以用for循环改进。
用面向对象的思想改进:
必须有一个用户类:
成员变量:用户名,密码
构造方法:空参,带参
get和set方法
成员方法:
判断用户是否登陆成功:boolean isLogin(String username,String password );
获取功能:截长取位取元素
String substring(int start); //从start位置开始截取元素(包括start),直到该字符串末尾。
String substring(int start,int end); //从指定位置开始,到指定位置结束。
注意:这两个方法返回的都是一个新串,之前的字符串的值并没有发生变化。
int length();
int indexOf(int ch); //从字符串的第一个元素开始,找指定元素在字符串中第一次出现的索引
int indexOf(int ch,int fromIndex);//从字符串的指定位置开始,找指定元素在字符串中第一次出现的索引
int indexOf(String str);
int indexOf(String str,int fromIndex);
char charAt(int index); //找字符串中指定位置的元素
查看下面需求,思考思路(不要求写出代码)
给定一个字符串常量,统计该串中有大写字母、小写字母、数字各有多少个。
举例:
Hello12345World
大写 : 2个
小写 : 8个
数字 : 5个
String str = "Hello12345World";
思路:
1、定义三个统计变量(计数器),分别来记录这三种类型字符的个数。
2、遍历字符串,获取到该字符串中的每一个字符。
3、判断当前遍历到的字符是哪种类型的字符,是哪种,哪种计数器++。
4、打印计数器的值。
改进版:通过键盘录入,让用户输入一个字符串,然后计算出该字符串中:
大写字母,小写字母,数字,以及其他符号分别有多少个。
转换功能:大小拼串转数组
String toUpperCase();
String toLowerCase();
String concat(String str);
static String copyValueOf(char[] chs);
static String valueOf(char[] chs);
static String valueOf(int i); //可以基本类型的数据转成字符串,此处以int为例。
重点掌握:
byte[] getBytes();
char[] toCharArray();
|
|