Java基础——字符串类String
2017-02-24 21:17
746 查看
字符串是由字符构成的一个序列。在很多语言中,字符串都被当作字符数组来处理,但是在Java中,字符串是一个对象。String类中有11个构造方法以及40多个处理字符串的方法。所以String类不仅在程序设计中非常有用,也是一个学习类和对象的很好的例子。
构造一个字符串:
String 字符串名称 = new String(字符串的内容);
Java将字符串“直接量(指的是:字符串的内容)“ 看作String对象。所以,下面的语句也是合法的:
String 字符串的名称 = “字符串的内容”;
还可以用字符数组创建一个字符串。例如: 下面创建一个字符 串“Java”
char[] 字符串名称 = {字符串的内容}; 这里是{’j’,’a’,’v’,’a’}
(p.s:我总是将String和char两个类型搞混,char类其实是字符类型)
我们通过构造字符串这个例子了解其中的差别:
字符串的比较
说到字符串的比较,相信刚开始学习Java的我们都会最先尝试”==“这个操作符。事实上,这个操作符只能检测两个字符串是否指向同一个对象,但是并不会告诉你他的对象是否相同。
此时我们需要尝试下equals方法。这个就是我们所需要的方法。这个方法返回的是布尔型变量”true”和”false”。
还有一个compareTo方法,这个方法也具备equals的功能:判断两个字符串是否相等,但是该方法返回值是0;若两个字符串不相等,如s1为“abc”,s2为“abg”, s1.compareTo(s2)返回的是-4,这个-4是根据字符在同一码的顺序相减得出来的。
String类中还有其他的比较字符串的方法。如:忽略大小写、是否有某些特定的前缀等等。这些就需要大家查下资料,不一一列出了。
字符串的长度、字符以及组合字符串
获取字符串的长度:
获取单个字符:
我们在使用一个字符串是往往是知道它的直接量值的,为了方便起见,Java允许在不创建变量的情况下,使用字符串的直接量应用字符串。
下面是连接两个字符串:
如果一个是数字,一个是字符串,用’+’连接时则先将数字转化为字符后相连。注意:若要使用加号实现连接的功能,则至少要有一个操作数必须为字符串。
获取子串
获取字符串中的某个字符或者某个子串
字符串的转换、替换与分割
字符串与数组之间的转换
字符串不是数组,但是字符串可以转换为数组,反之亦然。为了将字符串转换为一个字符数组,可以使用toCharArray方法,而将数字转换为字符串可以使用valueOf方法,例如:
将字符和数值转换成字符串
使用静态的valueOf方法能够将字符数组转化为字符串。可以使用valueOf方法的几个重载版本将字符和数值转换为字符串,这些重载方法的参数类型可以为char , double , long , int 和 float类型。
构造一个字符串:
String 字符串名称 = new String(字符串的内容);
Java将字符串“直接量(指的是:字符串的内容)“ 看作String对象。所以,下面的语句也是合法的:
String 字符串的名称 = “字符串的内容”;
还可以用字符数组创建一个字符串。例如: 下面创建一个字符 串“Java”
char[] 字符串名称 = {字符串的内容}; 这里是{’j’,’a’,’v’,’a’}
(p.s:我总是将String和char两个类型搞混,char类其实是字符类型)
我们通过构造字符串这个例子了解其中的差别:
String message = new String("Java"); char[] message = {'j','a','v','a'};
字符串的比较
说到字符串的比较,相信刚开始学习Java的我们都会最先尝试”==“这个操作符。事实上,这个操作符只能检测两个字符串是否指向同一个对象,但是并不会告诉你他的对象是否相同。
此时我们需要尝试下equals方法。这个就是我们所需要的方法。这个方法返回的是布尔型变量”true”和”false”。
还有一个compareTo方法,这个方法也具备equals的功能:判断两个字符串是否相等,但是该方法返回值是0;若两个字符串不相等,如s1为“abc”,s2为“abg”, s1.compareTo(s2)返回的是-4,这个-4是根据字符在同一码的顺序相减得出来的。
String类中还有其他的比较字符串的方法。如:忽略大小写、是否有某些特定的前缀等等。这些就需要大家查下资料,不一一列出了。
字符串的长度、字符以及组合字符串
获取字符串的长度:
s1.length();p.s:获取数组a的元素个数时就要使用
a.length
获取单个字符:
s1.charAt();当然,下标也是从0开始的。下面的例子也是允许的:
"welcome".charAt(0)//这个的返回值就是"w";
我们在使用一个字符串是往往是知道它的直接量值的,为了方便起见,Java允许在不创建变量的情况下,使用字符串的直接量应用字符串。
下面是连接两个字符串:
String s3 = s1.concat(s2); String s3 = s1 + s2;//这两个方法是等价的。
如果一个是数字,一个是字符串,用’+’连接时则先将数字转化为字符后相连。注意:若要使用加号实现连接的功能,则至少要有一个操作数必须为字符串。
获取子串
substring(开始的下标);//返回这个 4000 字符串中从指定的下标开始到字符串末尾的子串; substring(开始的下标,结束的下标);//返回这个字符串从开始小标到结束下标的子串。要注意的是:结束下标处的字符不是子串的一部分! String message = "Welcome to Java".substring(0,11) + "HTML"; //这个message的内容变为"Welcome to HTML" //如果开始的下标和结束的下标相同的话,返回的会是一个长度为0的空字符串。如果 开始下标“小于”结束下标则会出现运行错误。
获取字符串中的某个字符或者某个子串
indexof(ch: char):int 返回字符串中第一次出现ch字符的下标,如果不匹配返回-1; indexof(ch: char,fromIndex: int):int 返回字符串中fromIndex下标后第一次出现ch字符的下标,如果不匹配返回-1; indexof(s:String):int 返回字符串中第一次出现s字符串的下标,如果不匹配返回-1; indexof(s:String,fromIndex: int):int 返回字符串中fromIndex下标后第一次出现s字符串的下标,如果不匹配返回-1; lastIndexof(ch: char):int 返回字符串中最后一次出现ch字符的下标,如果不匹配返回-1; lastIndexof(ch: char,fromIndex: int):int 返回字符串中fromIndex下标后最后一次出现ch字符的下标,如果不匹配返回-1; lastIndexof(s:String):int 返回字符串中最后一次出现s字符串的下标,如果不匹配返回-1; lastIndexof(s:String,fromIndex: int):int int 返回字符串中fromIndex下标后最后一次出现s字符串的下标,如果不匹配返回-1;
字符串的转换、替换与分割
toLowerCase():String 返回将所有字符都转化为小写之后的新字符串; toUpperCase():String 返回将所有字符都转化为大写之后的新字符串; trim():String 返回去掉两端的空白字符之后的新字符串; replace(旧字符,新字符):String 返回一个新字符替换这个字符串中所有和他匹配的字符的新字符串; replaceFirst(旧字符串,新字符串):String 这个只会将第一个与之匹配的字符串替换,然后返回之后的新字符串; replaceAll(旧字符串,新字符串):String 这个将所有的旧的子串替换为新子串然后返回之后的新字符串; split(String类型界定符):String 返回界定符分割的字符串所构成的一个字符串数组,注意:这个是字符串数组。分割的这个方法很有意思,大家可以去实践下。
字符串与数组之间的转换
字符串不是数组,但是字符串可以转换为数组,反之亦然。为了将字符串转换为一个字符数组,可以使用toCharArray方法,而将数字转换为字符串可以使用valueOf方法,例如:
char[] array = "Java".toCharArray();//字符串转换为字符数组; String str = new String (new char[]{'J','a','v','a'});//用字符数组构造一个字符串; String str = String.valueOf(new char[]{'J','a','v','a'});//用valueOf方法将字符数组转换为字符串;
将字符和数值转换成字符串
使用静态的valueOf方法能够将字符数组转化为字符串。可以使用valueOf方法的几个重载版本将字符和数值转换为字符串,这些重载方法的参数类型可以为char , double , long , int 和 float类型。
String str = String.valueOf(5.44);//返回值是由字符'5','.','4','4'组成的字符串; //其它类型的参数也是同样的使用方法。
相关文章推荐
- 黑马程序员—java基础学习--String字符串类,基本数据类型包装类
- JAVA基础,String,int互转
- 全面理解Java中的String数据类型-Java基础-Java-编程开发
- Java基础学习笔记(二)常用类String
- java基础知识(五) 字符串定义(String)与字符串的修改(StringBuffer)
- java基础之String和StringBuffer的区别和使用
- Java基础问题:java.lang.String - intern()
- java基础--string操作
- Java基础: String 的 split()
- JAVA基础之String
- 【Java基础】String,StringBuffer,StringBuilder之间的区别
- java基础--特殊的String
- Java基础:第十九讲 String用法(下)
- Java基础:第十八讲 String用法(上)
- Java基础学习笔记(二)常用类String
- int 和 String 互相转换的多种方法-Java基础-Java-编程开发
- Java 中的字符串类String、StringBuffer、StringBuilder的区别
- Java基础:第十八讲 String用法(上)
- Java基础:String
- Java基础: 由 intern 看 String