初学JavaDay11——String类型
String类型的基本知识
String类型是为了表示一串字符。它和System、Scanner一样是Java库中的预定义类。但它不是基本类型,而是引用类型。
String创建
有两种方式,一种是 String s1 ="a" 另一种是 String s2 =new String(“s2”),
其中第一种是创建在常量池中,如果该字符串已经存在常量池中,那么就直接返回常量池中的实例引用。如果字符串不存在常量池中,就会实例化该字符串并且将其放到常量池中。由于String字符串的不可变性我们可以十分肯定常量池中一定不存在两个相同的字符串
第二种创建方式直接在堆内存中创建对象
注意:
String不可改变,这里的不可改变是指,引用对象的不可改变,而引用对象所指向的值还是可以改变的。如果需要改变则需要使用,StringBuffer & StringBuilder类
String方法
- String的方法分为两类:
1.实例方法:只能从一个特定的字符串实例来调用。
2.静态方法:非实例的方法。静态方法可以不使用对象来调用。定义在Math类中的所有方法都是静态方法。
注意:一个方法可以有多个参数(charAt()有一个参数),或者没有参数(length())。
- String对象的简单方法:
length 求字符串中的字符数
注意:""表示空字符串,其长度为0
charAt () 返回字符串中指定位置的字符
concat(S1) 将两个字符串连接起来
提示:
1. java中还提供了一种简单的办法,使用“+”。则: String s3=s1.concat(s2); 等价于 String s3=s1+S2;
2. “+”可以连接数字和字符串,在连接时自动将数字装换成字符串
3.如果要使用“+”,必须有一个操作符为字符串
toUpperCase() 返回一个新字符串,其中所有的字母大写
toLowerCase() 返回一个新字符串,其中所有的字母小写
trim 返回一个新字符串,去掉两边空白部分
- 从控制台读取字符串
有两种方式:
1.next()方法读取以空白字符结束的字符串
2.nextLine() 读取一整行文本
为了方便, nextLine被称为基于行的标记,而nextInt()、next()、nextShort()、nextLong等称为基于标记输入
重要警告:为了避免输入错误,程序中不要在基于标记的输入之后使用基于行的标记
- 字符串的比较
注意:
1.eauals与==相比,他们相同的点都是比较的地址,而不同的是,对于String类==用于比较的是两个String类型对象的值,equals用于比较两个对象的内容。
2.compareTo方法会根据一个字符串是否等于、大于或等于另一个字符串,分别返回0、正整数或负整数。
警告:如果使用 > 、>=、<、<=这样的比较符,会发生语法错误。替代方法是使用s1.comparTo(s2)来进行比较。
- 获得子字符串
- 获得字符串中的字符或者子串
- 字符串和数字间的转换