学习笔记
String既然是一个类,s1应该叫做String类的对象
s1为什么没有New也可以叫做对象?
String s1="abcas";
创建对象是要构造构造器
String s2=new String("kj");
s1指向的和s2指向的不在同一区域
双等号比较的是虚地址(对象在内存中的存储位置)
等号赋值无论怎么比较都是true new赋值用双等号比较就是fault
String一旦声明不可改变
String length 字符串长度 有下标,索引
比较字符串的内容
equals方法:System.out.println(s3.equals(s4));
length方法:
字符串获取长度的方法和数组获取长度有什么区别?
1.数组的Length是属性,字符串的length是方法
S1.charAt(10) 取出指定下标的字符
char+1 自动转成ascall码+1
判断指定字符是否存在 这个方法的返回值为字符串在s1的下标(索引)
如果不存在返回-1
会返回从做到右遇到的第一个匹配的下标
System.out.println(s1.indexOf("a"));
indexOf(String.int) 代表从int位置开始查找,包括当前int的位置
s1.lastINdexOf 从后往前找
练习
统计一个字符串在另一个字符串中出现的字数
String s1="abcde";
统计a在s1中出现了多少次?
字符串的截取
如果传一个参数,那就是容指定位置开始截取,知道字符串的末尾
包括起始位置的字符,会生成新的字符串,不会改变原有数据 不包含终止位置
str.substring(1);
str.substring(1,2);
练习
键盘输入身份证号,输出性别,生日
string str=”abcdefg”;
str.toUppercase(); 转大写
str.toLowercase();转小写
str.starsWith(’a‘);判断以什么为开头的
str.endsWith();判断以...为结尾
str.equalsIgnore 忽略大小写进行比较
str.trim(); 去掉空格
根据指定的字符分割 str.split(); 放字符串 String[] strings=str.split(“,”);
字符串的替换:String str=”hello”;
str.replce(); 换字符
str.repaceAll(“ello”,”l”)
字符串和数组的转换,包括字符串和其他数据类型(包括数组)的转换
int i=10;
string s =i+””;(null) “”有地址不出空指针,字面量 null无地址
任何字符类型和字符串类型做加法,结果都是字符串
string s =String.valueOf(i); 带static的方法 把其他(int)类型转成字符串,推荐使用
/char[] array=str.toCharArray();
转成字节型的数组 97 98 99....(ascall码) 一般情况下,字节型数组是操作文件用的 IO流
/byte[] byets=str.getBytes();
For(byte b:bytes){
System....}
部分方法练习
包装器类型(包装类,封装类)
八种数据类型对应八个类
特殊变化
int Integer
char Character
基本数据类型包装成包装器类型
为什么要有包装器类型? 把一个字符串转成其他数
类是引用数据类型,默认值是Null 基本数据类型的默认有数值
Integer i=10; 相当于把int类型包装成Integer类型 : 自动装箱
int i1=i; 自动拆箱 Integer类型转换成int
JDK7: