String字符串
在JAVA中提供了多种创建字符串对象的方法,这里介绍最简单的两种,
第一种是直接赋值,
第二种是使用String类的构造方法:
如下所示:
String str1=null;
String str2="";
String str3=new String();
String str4="Hello world";
String str5=new String("Hello world");
第一行代码是说明的是变量str1是一个null(空值)。
第二行代码是给这个str2赋值一个空的字符串""。
第三行也是str3赋值一个空的字符串。
第四行str4的字符串的值为"Hello world"。
第五行str5的值也是"Hello world".
需要注意的是
1.空的字符串""和空值(null)是两个不同的概念,空字符串是说明这个字符串对象是存在的,但是不包含任何字符,而null的意思就是这个对象什么都没有,没有指向任何内存地址
2.str4,str5分别是用直接赋值和使用String构造方法创建出来的带初始值"Hello world"的字符串变量,然而通过这两种方法创建的字符串却是不同的。
直接赋值法,是先创建一个字符串的常量"Hello world",并将基赋值给变量str4,
而使用构造方法创建出来的是先创建一个字符串常量"Hello world",然后再创建一个对象,然后该对象的内容指向这个字符串常量,再然后str5指向这个对象。
3."Hello world"=="Hello world";返回true,因为这两个是同一个字符串常量,
str4==str5; 返回false,因为这两个字符串对象虽然内容相同,但是指向的内存地址不一样,
str4.equals(str5);返回true,因为这两个字符串对象的内容是相同的,而equals()方法比较的就是内容,而不是对象。
1,获取:
* 1.1 获取字符串中字符的个数(长度).
* int length();
* 1.2 根据位置获取字符。
* char charAt(int index);
* 1.3 根据字符获取在字符串中的第一次出现的位置.
* int indexOf(int ch)
* int indexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
* int indexOf(String str);
* int indexOf(String str,int fromIndex);
* 根据字符串获取在字符串中的第一次出现的位置.
* int lastIndexOf(int ch)
* int lastIndexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
* int lastIndexOf(String str);
* int lastIndexOf(String str,int fromIndex);
* 1.4 获取字符串中一部分字符串。也叫子串.
* String substring(int beginIndex, int endIndex)//包含begin 不包含end 。
* String substring(int beginIndex);
2,转换。
* 2.1 将字符串变成字符串数组(字符串的切割)
* String[] split(String regex):涉及到正则表达式.
* 2.2 将字符串变成字符数组。
* char[] toCharArray();
* 2.3 将字符串变成字节数组。
* byte[] getBytes();
* 2.4 将字符串中的字母转成大小写。
* String toUpperCase():大写
* String toLowerCase():小写
* 2.5 将字符串中的内容进行替换
* String replace(char oldch,char newch);
* String replace(String s1,String s2);
* 2.6 将字符串两端的空格去除。
* String trim();
* 2.7 将字符串进行连接 。
* String concat(string);
3,判断
* 3.1 两个字符串内容是否相同啊?
* boolean equals(Object obj);
* boolean equalsIgnoreCase(string str);忽略大写比较字符串内容。
* 3.2 字符串中是否包含指定字符串?
* boolean contains(string str);
* 3.3 字符串是否以指定字符串开头。是否以指定字符串结尾。
* boolean startsWith(string);
* boolean endsWith(string);