学习笔记_JavaSE_12_String类

1:Scanner的使用(了解)
(1)在JDK5以后出现的,用于键盘录入数据的类。
(2)构造方法:
A:讲解了System.in这个东西。
它其实是标准的输入流,对应于键盘录入
B:构造方法
InputStream is = System.in;

Scanner(InputStream is)
C:常用的格式
Scanner sc = new Scanner(System.in);
(3)基本方法格式:
A:hasNextXxx() 判断是否是某种类型的
B:nextXxx() 返回某种类型的元素
(4)要掌握的两个方法
A:public int nextInt() int类型
B:public String nextLine() String类型
(5)需要注意的小问题
A:同一个Scanner对象,先获取数值,再获取字符串,会出现一个小问题。
B:解决方案:
a:重新定义一个Scanner对象
b:把所有的数据,都用字符串获取,然后再进行相应的转换。

2:String类的概述和使用(掌握)

(1)多个字符组成的一串数据。
其实,它可以和字符数组进行相互转换。

(2)构造方法:
A:public String() 空构造
B:public String(byte[] bytes) 把字节数组,转成字符串
C:public String(byte[] bytes,int offset,int length) 把字节数组的一部分(从某个索引开始的几个),转成字符串
D:public String(char[] value) 把字符数组,转成字符串
E:public String(char[] value,int offset,int count) 把字符数组的一部分,转成字符串
F:public String(String original) 把字符串常量值,转成字符串

下面的这一个虽然不是构造方法,但是,结果也是一个字符串对象
G:String s = "hello";直接赋值

(3)字符串的特点
A:字符串,一旦被赋值,就不能改变。
注意:这里指的是字符串的内容不能改变,而不是引用不能改变。
B:字面值作为字符串对象 和 通过构造方法创建对象 的不同
String s = new String("hello"); 和 String s = "hello" 的区别?
一个是在方法区和堆里都有,一个是在方法区有

(4)字符串的面试题(看程序写结果)
A:==和equals()
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true


String s3 = new String("hello");
String s4 = "hello";
System.out.println(s3 == s4); // false
System.out.println(s3.equals(s4)); // true


String s5 = "hello";
String s6 = "hello";
System.out.println(s5 == s6); // true
System.out.println(s5.equals(s6)); // true

B:字符串的拼接
String s1 = "hello";
String s2 = "world";
String s3 = "helloworld";
System.out.println(s3 == s1 + s2); // false
System.out.println(s3.equals((s1 + s2))); // true


System.out.println(s3 == "hello" + "world"); // false 这个,我们错了,应该是true
System.out.println(s3.equals("hello" + "world")); // true

(5)字符串的功能 (自己补齐方法的中文意思)
A:判断功能
boolean equals(Object obj) 比较字符串的内容是否相同,区分大小写         重写父类的方法equals 所以是Object类型
boolean equalsIgnoreCase(String str) 比较字符串的内容是否相同,忽略大小写 验证码不区分大小写
boolean contains(String str) 判断大字符串中是否包含小字符串
boolean startsWith(String str)  判断字符串是否以某个指定的字符串 开头
boolean endsWith(String str) 判断字符串是否以某个指定的字符串 结尾
boolean isEmpty() 判断字符串是否为空。
注意:字符串内容为空和字符串对象为空。
String s = "";    字符串内容为空   对象存在,但没有数据
String s = null;  字符串对象为空 对象不存在
B:获取功能
int length() 获取字符串的长度。
char charAt(int index) 获取指定索引位置的字符
int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
为什么这里是int类型,而不是char类型?
原因是:'a'和97其实都可以代表'a'  int类型是大的类型
int indexOf(String str) 返回指定字符串在此字符串中第一次出现处的索引。
int indexOf(int ch,int fromIndex) 返回指定字符在此字符串中从指定位置后第一次出现处的索引。
int indexOf(String str,int fromIndex) 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
String substring(int start) 从指定位置开始截取字符串,默认到末尾。
String substring(int start,int end) 从指定位置开始到指定位置结束,截取字符串。
C:转换功能
byte[] getBytes() 把字符串转换为,字节数组。
char[] toCharArray() 把字符串转换为,字符数组。
遍历字符串有两种方法:前面讲的charAt()和length()方法结合;
  toCharArray()方法,把字符串转换为,字符数组
static String valueOf(char[] chs)   把字符数组转成,字符串。
static String valueOf(int i) 把int类型的数据转成,字符串。
注意:String类的valueOf方法,可以把任意类型的数据转成字符串。   API里叫方法重载(overload)
String toLowerCase() 把字符串转成,小写。
String toUpperCase() 把字符串转成,大写。
String concat(String str) 把字符串,拼接。
D:其他功能
a:替换功能 
String replace(char old,char new)
String replace(String old,String new)
b:去(两端)空格功能
String trim() 去除字符串两空格 去除前后两端的,不去除中间的
c:按字典比较功能
int compareTo(String str) 按字典顺序,比较两个字符串  区分大小写的比较
int compareToIgnoreCase(String str) 按字典顺序,比较两个字符串  不区分大小写的比较

(6)字符串的案例
A:模拟用户登录
B:字符串遍历
C:统计字符串中大写,小写,及数字字符的个数
D:把字符串的首字母转成大写,其他小写
E:把int数组拼接成一个指定格式的字符串
F:字符串反转
G:统计大串中小串出现的次数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值