2022-07-20 第二小组 张鑫 学习笔记

实训十二天 string+包装类

1.学习重点

1.string的声明

2.string的方法

3.方法案例

4.包装类

5.登陆系统完善

2.学习心得

今天讲的内容不是很多,主要还是对几天前面向对象学习巩固,下午通过一个案例将这几天的所学都结合起来,还是有很多不理解的地方,感觉跟那些会的大佬差距好大啊!

3.导图

4.学习内容

String字符串

String是一个类:
一个类中可以有哪些结构:属性,方法,构造器
String这个类也有属性,方法,构造器

==双等号比较的是虚地址
虚地址:对象在内存中的存储位置
等号赋值,无论怎么比较,都是true
new赋值,用双等号比较,就是false


equals方法:

比较字符串的内容
1.需要传参,需要传String类型的参数
2.有返回值,返回值类型是boolean类型
3.访问权限 public

Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串1:");
String s3 = sc.next();
System.out.println("请输入字符串2:");
String s4 = sc.next();
//比较字符串的内容
System.out.println(s3.equals((s4)));

length方法

获取字符串长度
1.不需要传参
2.有返回值,返回值类型是整型
3.访问权限 public

String s1 = "abcdefg";
System.out.println(s1.length());

字符串的length()是方法;数组的length是属性


charAt

取出指定下标位置的字符

String s1 = "abcdefg";
//取出指定下标位置的字符
System.out.println(s1.charAt(0));
Scanner sc = new Scanner(System.in);
char c = sc.next().charAt(0);
System.out.println(c+1);

indexOf

判断指定字符串是否存在,返回值为字符串在s1的下标
返回从左到右遇到的第一个匹配的下标
如果不存在,返回-1

String s1 = "abcdefgabcdaaa";
System.out.println(s1.indexOf("a",1));

indexOf(String ,int)代表从int位置开始查找,包括当前位置


从后往前找

lastIndexOf
System.out.println(s1.lastIndexOf("a",8));

字符串的截取

substring

如果传一个参数,从指定位置开始截取,直到字符串的末尾
包括起始位置的字符
生成一个新的字符串,不会改变原有数据

String str ="abcdefghijklmn";
String s =str.substring(1);

包含起始位置,不包含终止位置

s = str.substring(1,2);
System.out.println(s);

常用方法

String str = "abcdEFG";
String str1 = "    ABCDefg    ";
String str2 = "123,456,789,00";

转大写
toUpperCase

System.out.println(str.toUpperCase());

转小写
toLowerCase

System.out.println(str.toLowerCase());

判断是否以XX开头
startsWith

System.out.println(str.startsWith("a",2));

判断是否以XX结尾
endsWith

System.out.println(str.endsWith("G"));

忽略大小写进行比较内容
equalsIgnoreCase

System.out.println(str.equalsIgnoreCase(str1));

去掉字符串前后空格
trim

System.out.println(str1.trim());

根据指定字符分割
split

String[]strings=str2.split(",");

字符串的替换
replace
replaceAll

String str ="hello";
System.out.println(str.replace('e','c'));
System.out.println(str.replaceAll("l","i"));

字符串和数组类型的转换

数组转字符串

int []arr =new int[]{1,2,3,4,5};
String str ="abcdefg";

转成字符型数组
char[]array =str.toCharArray();

转成字节型数据
一般情况下,字节型数组在操作文件的时候常用的IO流

byte[] bytes =str.getBytes();

把int类型转换成字符串(推荐

String s =String.valueOf(i);

任何数据类型和字符串类型做加法,结果都是字符串
String s =i+"";//null 不推荐使用


包装器类型(包装类,封装类)
八种数据类型:
byte——————Byte
short——————Short
int——————Integer
long——————Long
float——————Float
double——————Double
char——————Character
boolean——————Boolean

原理:
自动装箱:把int类型包装成了包装器Integer类型
基本数据类型转换成对应的包装器类型
自动拆箱:把Integer类型转换成int类型
包装器类型转换成对应的基本数据类型

int i=10;
Integer i1 =20;
Integer i2 =Integer.valueOf(50);
int ii =i2;
int ii2 = i2.intValue();

JDK5之后的新功能
1.自动装箱和自动拆箱
2.增强for循环(foreach)
3.枚举

JDK7以后的新功能
swich...case 可以用String


案例1:
统计一个字符串在另一个字符串中出现的次数

sum类

public int sum(String target,String str){
        int i =0;
        int count =0;
        while (i<str.length()){
            int i1 =str.indexOf(target,i);
            if(i1 !=-1){
                count++;
                i=i1+1;
            }else {
                i++;
            }
        }
        return count;
    }
public static void main(String[] args) {
        Ch05_Demo ch =new Ch05_Demo();
        System.out.println(ch.sum("a","abcdefgabcdaaa"));}

案例2:
键盘输入身份证号
输出年龄,性别,生日

gerGender

public String getGender(String cardId){
        String gender = "男";
        char gendernumber =cardId.charAt(16);
        if(gendernumber % 2 ==0){
            gender = "女";
        }
        return gender;
    }

getBirthday

public String getBirthday(String cardId){
        String birthday=cardId.substring(6,14);
        System.out.println("生日是:"+birthday);
        return birthday;
    }
public static void main(String[] args) {
        Ch06_Demot ch =new Ch06_Demot();
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入身份证号:");
        String cardId =sc.next();
        if(cardId.length() == 18){
            ch.getBirthday(cardId);
            ch.getGender(cardId);
            }else {
            System.out.println("输入身份证号错误!");
        }
    }
posted @ 2022-07-20 21:22  菜鸡成长记  阅读(51)  评论(0)    收藏  举报