JAVA入门基础笔记--string类型

来源:互联网 发布:安卓数据恢复免费版 编辑:程序博客网 时间:2024/05/18 18:19

String 字符串

1. 双引号之间的内容在java中都被当作字符串的内容来处理,如果在字符串中包含有双引号,前面需要加反斜杠“\”来转义,表示这只是一个普通的双引号字符。

 

2. String 与字符型数组的区别

使用字符型的数组可以实现字符串的所有特性,在java中,String 类的底层就是一个字符数组。提出String类是为了解决字符型数组的不便,如初始化,方便人们阅读等等。

 

3. “+” 可以将两个字符串相连成一个新的字符串。字符型数组是不能这么做的。

Java中字符串是个常量,它的值是不能被修改的,所以才能够安全的被多个对象同时引用。我们串联原有的字符串得到的新的字符串是原有字符串的完全复制,并不是将原有的两个字符串简单的连接起来。不断的使用“+”来串联字符串过程中,java实际在不断的创建新的字符串,消耗内存资源。

concat() 方法也可以用于连接两个字符串,这个方法的效率比“+”要高些。

新字符串 = 字符串1.concat(字符串2);

 concat返回新字符串的引用,并且两个字符串连接之后,原来参与连接的两个字符串都保持不变。

 

4. 声明、创建、定义字符串String

String 字符串名;  生成了一个String类型变量的引用,并没有指向任何对象实体,值为null.

new String(“字符串”);

创建方法的区别:

方法一  String 字符串名 = new String(“字符串”);

方法二 String 字符串名= “字符串”;

这两种方法只是在多次创建同一个字符串时有区别。方法一创建字符串时,既使遇到字符串内容相同的情况,也会创建多个实体,而方法2在这种情况下只会创建一个实体,多个String对象都指向这个实体。

 

5. 空串与没有初始化的字符串变量区别

String str1; 未赋初值的字符串变量,不指向任何变量,值为null.

String str2 = new String(“”); 空串,str2指向一个空的字符串,字符串中不包含任何字符

str2.length() = 0.

 

6. length 数组与字符串的不同之处

数组中是属性,字符串中是方法。

即:数组名称.length   对比  str1.length()

 

7. 字符串比较 equals(目标字符串),equalsIgnoreCase(目标字符串) 与“==”的区别

“==”比较的对象的地址,即比较的是两个变量是否指向同一个字符串。

equals(目标字符串),equalsIgnoreCase(目标字符串) 比较的是对象的内容

String str1 = new String(“abc”);

String str2 = new String(“abc”);

str1 == str2  为false

str1.equals(str2) 为true

 

compareTo(目标字符串),compareToIgnoreCase(目标字符串)。比较规则从第一个字符开始根据字符对应unicode的值做减法,优先考虑unicode的值比较,在比较过程中遇到一个字符串结束时才会比较两个字符串的长度。

 

8. 字符串的查找

charAt(int index)

indexOf(int ch) 从左往右,返回值为索引

lastIndexOf(int ch) 从右往左,返回值为索引

注意字符串的字符索引是从左往右,依次0、1、2.。。

 

9. 取得子串

substring(起始索引位置) 从当前的字符串中提取出从索引位置开始到字符串结束的子串,返回值为子串引用

substring(起始索引位置,结束索引位置)

注意这里string的首字母没有大写

 

10. 判断字符串的开头和结尾

startWith(前缀字符串) 判断字符串是否以前缀字符串开头

startWith(前缀字符串,偏移量) 从指定偏移量位置开始判断。。。

endsWith(后缀字符串)

 

11. 字符串的分割

split(分割字符串) 根据指定的“分割字符串”对原字符串进程分割,返回值为字符串数组

split(分割字符串, 次数限制) 最多分割次数

注意,分割字符串将被去掉,不会出现在得到的子字符串中。

 

12. 字符串大小写转换

toLowerCase() 转换原字符串中所有的字符

toUpperCase()


13. 删除两端空白字符

文字处理的时候,为了让数据更整齐、直观的显示出来,要使用制表符、空格等不可见字符。当用程序读取这些数据的时候,JAVA程序无法区分哪些是数据,哪些是格式字符。当我们要处理这些数据的时候,就需要把起修饰作用的字符去掉,让java程序继续处理数据部分。

trim() 剪掉字符串两端的空白字符

 

14. 字符串的替换

replace(原字符, 新字符)

replace(原字符序列, 新字符序列)

replaceAll(原字符串, 新字符串)

replaceFirst(原字符串,新字符串)

==replace(原字符序列, 新字符序列) 与 replaceAll(原字符串, 新字符串)功能是一样的。

 

15. 字符串与其他类型的关系

String 类型就是计算机与人之间的一个接口,主要作用是作为JAVA程序的输入/输出。

输出:对象和基本类型变量转换为字符串来显示,方便人们的阅读,调试。

JAVA中只有两类变量:对象 和 基本类型变量

(1)JAVA对象都有自己的toString()方法,用字符串形式来输出该对象的信息(名字、对象所表示的值。);

(2)基本类型的变量,可以调用String类的valueOf()方法,将变量的值转换为字符串。

如: String.valueOf(int1)

注意:println()会自动调用对象的toString()方法。

 

输入:字符串转换为其他类型的变量值,方便JAVA程序处理

JAVA中每一个基本类型的变量都有对应的对象类型,之前已经提到。

charAt(int index)

parseByte(String s)

parseShort(String s)

int, long, float, double, Boolean 类似。

如:Integer.parseInt(strInt)

 

16. 字符串与字符数组的关系

在JAVA中,字符串是用字符数组来实现的,不同于普通字符数组的是,字符串是一个常量数组,一旦创建之后,就不能再改变里面各个元素的值。

字符串转换为字符数组:

(1)toCharArray() 返回的是字符数组引用。不能指定转换的内容范围

(2)getChars(起始索引位置, 结束索引位置, 字符数组名, 数组的起始下标)

前两个索引是值在原字符串中从哪里开始取到哪里结束,然后存放在指定的字符数组内,存放开始的位置由最后一个参数指定。

 

17. StringBuffer 和StringBuilder类

这两个类可以用来高效的修改字符串的。

之前已经说过,String类型的内容是不能修改的,字符串的内容创建之后就是固定的,前面提到的修改字符串的时候,是创建了一个新的字符串而已。这里的两个类有一个保存字符的缓冲区,缓冲区的内容可以由我们任意修改,修改是真正修改缓冲区的内容。

StringBuffer类用于多线程和单线程,StringBuilder类用于单线程,方法都是一样的。

特有的方法:

添加:

insert(偏移量, 一般类型)

append(一般类型)

删除:

deleteCharAt(索引位置)

delete(起始位置, 结束位置)

修改:

setCharAt(索引位置, 字符值)

replace(起始位置, 结束位置, 新字符串)

reverse()

获取缓冲区的大小:

capacity()

 

charAt() , getChars() , indexOf() ,lastIndexOf() , length() , substring() , toString()与String类方法类似。



0 0
原创粉丝点击