一 回顾
1.项目打包 导包 删除依赖包 2.Object 概念:Object的所有类的直接父类或者是间接父类 构造:public Object() 常用的方法: public String toString() A.返回对象的字符串表示形式 B.没有重写返回的是对象的地址值 重写之后返回的是对象的属性值 public boolean equals(Object obj) A.比较两个对象是否是同一个对象 两个栈引用是否指向同一个堆内存 B.重写之后:比较的的对象的属性值是否相同 C.equals与== 区别 equals 范围 只能比较引用数据类型 == 可以比较引用数据类型 也可以比较基本数据类型 equals 规则 没有重写比较对象的地址值 重写之后 比较的的对象的属性值是否相同 ==比较基本数据类型比较的值 比较引用数据类型比较的是地址值 3.String 概述: A.String 类代表字符串 B.字符串是常量;它们的值在创建之后不能更改 C.字符串字面值 存在堆内存中常量池中 new 字符串 都存在堆内存中 D.字符串的底层是以字节数组来进行存储 构造方法: String s="abc"; public String() public String(byte[] bytes) public String(char[] value) 常用的方法: 判断性 得到性 转换性
二作业1
step01 需求
step02 分析
1.定义一个方法 2.例子:name ==>getName ==> public String substring(int beginIndex)
step03 代码
package com.qf.demo11;
public class Test1 {
public static void main(String[] args) {
System.out.println(getPropertyGetMethodName("name"));
}
public static String getPropertyGetMethodName(String property){
return "get"+property.substring(0,1).toUpperCase()+property.substring(1);
}
}
getName
三 作业2
step01 需求
step02 分析
1.定义一个方法判断一个数是否是对称数 2.正的字符串与反的字符串 就是对称数 3.遍历数组调用方法
step03代码
package com.qf.demo11;
import com.sun.javaws.IconUtil;
public class Test {
public static void main(String[] args) {
String [] arrays = new String[]{"010","3223","666","7890987","123123"};
int count = 0;
for (String array : arrays) {
char[] chars = array.toCharArray();
String s = "";
for (int i = chars.length-1; i >=0; i--) {
s = s + chars[i];
}
if (s.equals(array)){
System.out.println(array);
count++;
}
}
System.out.println(count);
}
}
四 作业3
step01 需求
step02 分析
1.使用死循环 遇到 end停止循环 2.使用字符串进行拼接 3.统计字母的个数
step03 代码
package com.qf.work01;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String w="";
while (true){
System.out.println("请输入字符串");
String s =input.next();
if (s.equals("end")){
break;
}else{
w+=s;
}
}
String k="";
int count=0;
//将字符串转换为字符数组
char[] ch = w.toCharArray();
for (int i=0;i<ch.length;i++) {
if (ch[i] >='a' && ch[i]<='z'){
k+=(ch[i]+"").toUpperCase();
count++;
}else if(ch[i] >='A' && ch[i]<='Z'){
k+=(ch[i]+"").toLowerCase();
count++;
}else {
k+="*";
}
}
System.out.println(k);
System.out.println(count);
}
}
五 作业4
step01 需求
step02 代码
package com.qf.work01;
public class Test03 {
public static void main(String[] args) {
//定义一个数组
int [] arrays ={1,2,3};
String w="";
for (int i=0;i<arrays.length;i++){
if (i ==0){
w+="["+arrays[i]+",";
}else if(i ==arrays.length-1){
w+=arrays[i]+"]";
}else {
w+=arrays[i]+",";
}
}
System.out.println(w);
}
}
六 StringBuffer(重点)
6.1 简介
1.概念:线程安全的可变字符序列 个类似于 String 的字符串缓冲区
但通过某些方法调用可以改变该序列的长度和内容
append(boolean b) insert(int offset, boolean b)
2.String 与StringBuffer区别:
String 不可以变字符串 StringBuffer 是可变的字符串
String 操作字符串效率低 StringBuffer效率高 sql拼接
3.StringBuiler 与 StringBuffer的区别:
A.版本不一样
StringBuiler1.5 StringBuffer 1.0
B.效率
StringBuiler 效率高 StringBuffer 低
C.线程安全性
StringBuiler 安全性低 StringBuffer 安全性高
6.2 构造方法
构造方法的名称 | 构造方法的描述 |
---|---|
public StringBuilder() | 实例化StringBuilder对象 初始化容量是16 |
public StringBuffer(int capacity) | 实例化StringBuilder对象 指定初始化容量大小 |
public StringBuffer(String str) | 将String构建成一个StringBuffer对象 初始化容量是字符串长度+16 |
代码
package com.qf.demo01;
public class Test01 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
System.out.println(sb.capacity());
StringBuffer sb1 = new StringBuffer(20);
System.out.println(sb1.capacity());
StringBuffer sb2 = new StringBuffer("张三");
System.out.println(sb2.capacity());
}
}
6.3 普通方法
方法的名称 | 方法的描述 |
---|---|
public StringBuffer append(String s ) |