String类的构造方法:
/*
public String()
public String(byte[] bytes) 转换byte数组类型位字符 ASILL码值 65-A 97-a
public String(byte[] bytes,int offset,int length)
public String(char[] value)
public String(char[] value,int offset,int count)
public String(String original) 在TESTString2中
*/
public class TESTString1 {
public static void main(String[] args) {
byte[] bytes = {97,98,99};
char[] chars = {'s','d','v'};
String s1 = new String(bytes,0,1);//offset:起始索引 length:起始索引后几个(包括索引)
String s2 = new String(chars,0,2);
System.out.println(s1);
System.out.println(s2);
}
}
String类的判断功能:
/*
boolean equals(Object obj)
boolean equalsIgnoreCase(String str) 忽略大小写
boolean contains(String str) 包含str字符串
boolean startsWith(String str) 以str开头
boolean endsWith(String str) 以str结尾
boolean isEmpty() 是否为空
*/
public class TESTString2 {
public static void main(String[] args) {
String s1 = "小花";
String s2 = new String("小花");
System.out.println(s1==s2); //两个对象创建的位置不同 s3在方法区里面 s4在堆里面 == 是判断地址值 所以返回False
System.out.println(s1.equals(s2));//equals是判断两个字符串的值是否相等 返回True
String s3 ="";
String s4 = null;
System.out.println(s1.isEmpty());
System.out.println(s3.isEmpty()); //判断是否为空
System.out.println(s4.isEmpty()); //null代表没有对象 无法使用isEmpty函数 所以会报错
}
}
String类的获取功能:
int length() 获取字符串中的字符个数,字符串长度
char charAt(int index) 根据索引获取字符串中某一个字符
int indexOf(int ch) 根据ascii码值获取对应字符所在的索引位置,左边起第一个
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) 截取字符串中的一部分 [start, end)
String转换功能:
byte[] getBytes() 转换成字节数组
char[] toCharArray() 转换成字符数组
static String valueOf(char[] chs) 将字符数组转字符串
static String valueOf(int i) 将整数转成字符串类型
String toLowerCase() 转小写
String toUpperCase() 转大写
String concat(String str) 拼接字符串
String其它功能:
替换功能
String replace(char old,char new) 由新字符替换字符串中所有旧字符
String replace(String old,String new) 由新的字符串替换旧的字符串
String trim() 去除字符串两边的空格
int compareTo(String str) 按字典顺序比较两个字符串 当结果是0的时候表示两个字符串内容相同
int compareToIgnoreCase(String str) 忽略大小写 按字典顺序比较两个字符串 当结果是0的时候表示两个字符串内容相同
Object类
java中所有的类默认都有一个共同的父类:Object
== 比较:
1、比较的是两个基本数据类型的话,比较两个数值是否相等
2、比较的是两个引用数据类型的话,比较的是两个对象的地址值是否相等
成员方法:
int hashCode() 返回对象的哈希码值。 可以看作地址值的另外一种表现形式
public final Class getClass() 返回此 Object的运行时类。 获取当前类的class文件对象, 一个类全局只有一个在方法区中
public String toString()
打印一个对象名,默认调用的是类中的toString()方法
若我们自己没有编写该方法的话,默认使用父类Object类中的toString()
而父类中默认的toString()打印是一个地址值
我们今后打印一个对象名的时候,输出是地址值意义不大,我们今后更多的是想看一个对象中成员变量值的情况
要想实现上面的输出成员变量值的话,重写toString()方法,这样调用的就是自己重写后的toString()
自动生成即可
public boolean equals(Object obj)
protected void finalize() 垃圾回收用的
//默认情况下,若对象类中没有自己编写equals方法,默认使用的是父类中Object类中的equals方法
//而父类中Object类中的equals方法底层调用的是==比较,若比较的是引用数据类型,比较的是地址值
//而我们这里s1和s2接受的是不同两个对象的地址值,所以默认比较的结果是false
// System.out.println(s1.equals(s2));
//需求:当对象的姓名和年龄一样的时候,表示是同一个学生
//比较的对象类中自己重写一个equals方法,自动生成即可
一个标准类的4.0版本写法:
成员变量: 私有化
构造方法: 有参,无参
成员方法: getXxx()和setXxx()
toString(): 重写父类中的toString()
protected Object clone()
java中并不是所有的类都可以被克隆,只有授权的类的对象才可以使用克隆方法
我们通过阅读帮助文档后发现,若一个对象的类没有实现Cloneable接口的话,是不可以调用clone方法的
然后,我们再去看Cloneable接口的时候,发现该接口中没有任何抽象方法,今后像这样的接口称之为标记接口
克隆在IT行业中,称之为拷贝。
拷贝分为两种:
1、浅拷贝
2、深拷贝
面试题:Object类中的clone是浅拷贝还是深拷贝。答:是浅拷贝
深拷贝会拷贝引用数据类型
Scanner
Scanner: 一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
构造方法:
Scanner(InputStream source) 构造一个新的 Scanner ,产生从指定输入流扫描的值。
public class ScannerDemo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//获取一个数字:
// int i = sc.nextInt();
// System.out.println(i);
//
// String s1 = sc.next();
// System.out.println(s1);
//获取数字的时候,我们是不是只能够输入数字呢?
// System.out.println("请输入一个数字:");
//hasNextXxx()判断下一个输入的内容是否是指定类型
// if(sc.hasNextInt()){
// int i = sc.nextInt();
// System.out.println(i);
// }else {
// System.out.println("您输入的内容不是一个int类型的值!");
// }
// int i = sc.nextInt();
// System.out.println(i);
// String s1 = sc.next(); //无法接收换行等空白特殊字符
// System.out.println(s1);
//输入字符串的另外一种方法
// String s1 = sc.nextLine(); //可以接收换行等空白特殊字符
// System.out.println(s1);
System.out.println("hello world");
}
}
标签:String,int,System,println,day10,字符串,out
From: https://www.cnblogs.com/flxf/p/18436656