String
string创建方式有两种
String name =“Tom”
tom存放在常量池中,若有两个相同的字符串,java先到常量池中寻找,不再另辟空间
Name =new string(“lucy”)
lucy存放在堆中,有不同的地址
关于字符串的操作
字符串.length()输出字符串长度
.startsWith("")判断是否以某个字符开头
.endsWith("")判断是否以某个字符结尾
.equals("")判断字符串是否完全相同
.equalsIgnoreCase("")忽略大小写,判断字符串是否相同
.indexof("");输出字符串的位置,从0开始
.lastIndexof("");从后向前查找
.substring(数字);从数字开始截取,保留后面
.substring(数字.数字)截取某个小字符串
.trim();去掉字符串左右两边的空格
.replaseAll(“A”,“B”)将所有的A替换成B
String [] ns=字符串.split(",");以,为分隔符,分出字符串数组
==与equals
==基本数据类型比较值,引用类型比较地址
String equals 只比较内容是否相同
Test test = new Test();
obj = test;
System.out.println(name1.equals(obj));
String name3 = new String(“Tom”);
obj = name3;
System.out.println(name1.equals(obj));
String name4 = new String(“To”);
obj = name4;
System.out.println(name1.equals(obj));
例题
1、字符串解析,现有字符串,“卡巴斯基#杀毒软件#免费版#俄罗斯#”,解析出每个元素。
2、现有如下学生参加学校运动会xt_0712 xt_0704 xt_0715 xt_0504 xt_0602 xt_0711 xt_0607,统计蓝桥7期(以xt_07开头的是兴唐7期)有多少人参加比赛。
3、已知Integer类中parseInt静态方法可以将一个字符串变为一个int类型的值,请写一个方法从身份证中获取出生日以及判断其性别(身份证的倒数第2位为偶数时表示女)。(注意:身份证号18位)
public static void main(String[] args) {
String a="卡巴斯基#杀毒软件#免费版#俄罗斯#";
String []b=a.split("#");
for(String m:b) {
System.out.println(m);
}
String c="xt_0712 xt_0704 xt_0715 xt_0504 xt_0602 xt_0711 xt_0607";
String []d=c.split("xt_07");
System.out.println(d.length-1);
String e="230381200003135522";
System.out.println(e.substring(6, 10)+"年"+e.substring(11,12)+"月"+e.substring(12,14)+"日");
}
输出结果:
卡巴斯基
杀毒软件
免费版
俄罗斯
4
2000年3月13日
实现注册功能,用户名长度不得小于6位;密码长度不得小于8位;两次密码输入必须一致。
while(true) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名");
String userName = scanner.next();
if(userName.length()<6) {
System.out.println("用户名长度不能小于6位");
continue;
}
System.out.println("请输入密码");
String passWord = scanner.next();
if(passWord.length()<8) {
System.out.println("密码长度不能小于8位");
continue;
}
System.out.println("请再次输入密码");
String passWord2 = scanner.next();
if(!passWord.equals(passWord2)) {
System.out.println("密码输入不一致");
continue;
}
System.out.println("注册成功");
}