String类
基本概念:
java.lang.String类用于描述字符串数据。java程序中所有字符串字面值都可以使用该类的对象加以描述和处理。如:“ab”等,双引号描述。
该类描述的字符创数据是常量,不可更改,因此可以共享使用 public final。
该类由 final 关键字修饰表示不能继承。
如:
String s1 = “hello”; — 其中“hello”是个常量,不可更改
s1 = “world”; — 使得引用变量 s1 由指向 “hello” 更改为指向 “world” ,改变指向。
注意:
String s1 = null; 和String s1 = “”;
其中前者的s1表示没有明确的指向,也就是没有String字符串对象。容易引发空指针异常。
其中后者的s1有明确的指向,只是该字符串对象中没有内容而已。
常用方法
常用的构造方法:
String() — 使用无参的形式创建空对象,该对象中没有字符串内容。
String(byte[] bytes) — 根据参数指定的数组内容来构造字符串对象。
String(byte[] , int offset , int length)— 根据参数指定的数组中从offset位置开始供length字节的数据来构造对象。
String(char[] value) — 根据参数指定的字符数组构造对象
String(char[] , int offset , int count) — 使用数组中的一部分构造对象。
String(String original) — 根据字符串内容来构造对象。
String(StringBuffer buffer) — 可以将StringBuffer类型转换成String类型。
String(StringBuilder builder) — 可以将StringBuilder类型转换成String类型。
重写了toString()、equals()、hashCode()方法。
char charAt(int index) — 用于获取当前字符串中下标为index位置的单个字符并返回。
int length() — 用于返回当前字符串的长度,也就是个数。
Object类(最基本的类)
方法介绍:
hashcode():根据地址显示一个哈希编码。地址相同则哈希码相同,否则不同
getClass(): 返回当前运行类的对象
toString():以String格式输出
Scanner类:接受键盘录入的数据,可以接受很多基本数据类型还是字符串类型
构造方法:public Scanner(InnputStream source) 构造一个新的Scanner,它生成的值是由指定的输入流扫描的。
Scanner sc= new Scanner(System.in);
成员方法: hasNext❌❌❌() 判断要接受的数据是否与当前数据类型一致,不一致hasNext❌❌❌方法就会返回false
nextLine() 将键盘录入的值当做字符串返回
next()将键盘录入的有效值进行输出:相较于上一个,不显示空格字符。
先使用nextInt再使用nextLine出现问题的原因?
先使用nextInt接受int类型的数据,后面的\r\n剩下了,nextLine将这些也接受了,所以看起来就像是程序停止运行了。
解决方法:不管输入的是什么类型,都用nextLine接受,然后进行强转。(字符串无法转换为基本数据类型,此时要使用Integer.parseInt()来实现)
包装类:
八中数据类型→八种包装类(封装类)。而且是引用数据类型,有自己的属性和方法(例如Integer的是常用的int类型数据的操作(如转为String型),和一些运算方法)。
int→Integer,char→Character,其他的都是首字母大写就可。
Integer的方法:
int→Integer,
Integer的构造函数完成,Integer i=new Ingeter(10);
写的更简单些,自动装箱 Integer i=num;num是一整型变量。
Integer→int ,
int num=i.intValue();也可以自动拆箱;
int num=i;
String→Integer
Ingeter 的构造函数完成,Integer i=new Integer("XXXX");
还有一个方法,Integer i=Integer.valueOf("xxxxx");
还可用于int型。
它没有自动装箱,Integer i="XXX";
Integer→String
String s=i.toString();
同样也没有自动拆箱。
String →int(是指是数据形式的String型)
原来是无法实现的,原来有从int→到String类型的转换方法。
就是int a=10;String s=a+"";
现在int a=Integer.praseInt("123");
int →String
String s=Integer.toString(100);//与上文的toString 方法形成方法重载。