标签:
简单地说,使用字符串主要分为两步。
(1)定义并初始化字符串。
(2)使用字符串,对字符串进行一些处理。
前面已经学过如何创建一个字符串,如下所示。
//创建一个字符串对象"Hello World"
String s="Hello World";
在Java中,字符串被作为String类型的对象来处理。String类是Java设计人员预先提供的一个非常有用的类,它位于java.lang包中,默认情况下,该包被自动导入所有的程序。创建String对象的另外两种方法如下列代码所示。
//创建一个空字符串
String s=new String();
或者
//创建一个字符串对象"Hello World"
String s=new String("Hello World");
1、String类提供的方法——字符串的长度
语法:
字符串1.length();
返回字符串1的长度。
2、String类提供的方法——字符串的比较(包含大小写)
语法:
字符串1.equals(字符串2);
比较两个字符串的值是否相同,返回boolean类型的值。如果相同,则返回true;否则返回false。
在使用equals()方法比较两个字符串时,对于字符的大小写,也在检查范围之内。
注意:在Java中,双等号(==)和equals()方法虽都应用于两个字符串,但判断的内容是有差别的。简单地讲,“==”判断的是两个字符串对象在内存中的首地址是否相等,即判断是否是同一个字符串对象,而equals()判断的是两个字符串对象的值是否相等。
3、String类提供的方法——字符串的比较(忽略大小写)
语法:
字符串.equalsIgnoreCase(字符串2);
忽略大小写比较字符串1和字符串2。如果都相同,则返回true;否则返回false。
4、String类提供的方法——字符串的转换大小写
语法:
字符串.toLowerCase()
返回字符串的小写形式
字符串.toUpperCase()
返回字符串的大写形式
toLowerCase():转换字符串中的英文字母为小写。 Java→java
toUpperCase():转换字符串中的英文字母为大写。 Java→JAVA
修改示例中的代码如下,同样可以实现忽略大小写实现登录。
if(uname.equals(("TOM").toLowerCase())&&pwd.equals(("1234567").toUpperCase())){
System.out.print("登录成功!");
}else{
System.out.print("用户名或密码不匹配,登录失败!");
}
1、复杂的字符串处理——连接字符串
连接字符串的方法有两种:使用“+”运算符;使用String类的concat()方法。
(1)在定义一个字符串时可以使用“+”运算符进行连接。如:System.out.println("SQL:"+sqlScore+"Java:"+javaScore+"HTML:"+htmlScore);
在使用“+”运算符连接字符串和int(或double)类型数据时,“+”将int(或double)类型数据自动转换成String类型。
(2)除此之外,在Java中,String类也提供了另一个方法concat()方法,将一个字符串连接到另一个字符串的后面,语法如下。
语法:
字符串1.concat(字符串2);
字符串2被连接到字符串1的后面,返回连接后的新字符串。
使用这个方法,让计算机向你问好,代码如下所示。
String s=new String("你好,");
String name=new String("张三!");
String sentence=s.concat(name);
System.out.println(sentence);
执行完毕,字符串sentence的内容便是“你好,张三!”,s和name的值依然为“你好,”、“张三”。
2、复杂的字符串处理——字符串的提取和查询
String类提供的一些常用的提取和查询方法。
常用提取和查询字符串的方法
序号 |
方法 |
说明 |
1 |
public int indexOf(int ch) public int indexOf(String value) |
搜索第一个出现的字符ch(或字符串value) |
2 |
public int lastIndexOf(int ch) public int lastIndexOf(String value) |
搜索最后一个出现的字符ch(或字符串value) |
3 |
public String substring(int index) |
提取从位置索引开始的字符串部分 |
4 |
public String substring(int beginindex,int endindex) |
提取beginindex和endindex之间的字符串部分 |
5 |
public String trim() |
返回一个前后不含任何空格的调用字符串的副本 |
字符串是一个字符序列,每一个字符都有自己的位置,字符串事实上也是一个字符数组,因此他的位置从0开始(字符串长度-1)结束。如字符串“青春无悔”,其中“青”,“春”,“无”,“悔”的索引下标依次为0、1、2、3。
在常用提取和查询字符串的方法一表中,前面1、2中的4个方法的作用是执行搜索操作,后面3、4、5中的3个方法用于提取字符或字符串。
(1)indexOf()方法
该方法是在字符串内搜索某个指定的字符或字符串,它返回出现第一个匹配字符的位置。如果没有找到匹配,则返回-1。调用时,括号中写明要搜索的字符(或字符串)的名字。例如,搜索“青春无悔”中字符“春”的位置。
String s="青春无悔";
int index=s.indexOf(‘春‘);
执行后,返回字符“春”的位置是1。
(2)lastIndexOf()方法
该方法也是在字符串内搜索某个指定的字符或字符串,但是它是搜索最后一个出现的字符(或字符串)的位置。例如,搜索字符串“青春无悔青春无悔”中最后出现字符串“青春”的位置。
String s="青春无悔青春无悔";
int index=s.lastIndexOf(‘青春‘);
执行后,返回字符串“青春”的首字符位置,index的值为6.
(3)substring(int index)方法
该方法用于提取从位置索引开始的字符串部分,调用时括号中写的是要提取的字符串的开始位置,方法的返回值就是要提取的字符串。例如,要提取字符串“青春无悔”中的“春无悔”。
String s="青春无悔";
String result=s.substring(1);
(4)substring(int beginindex,int endindex)方法
该方法用于提取位置beginindex和位置endindex位置之间的字符串部分。特别要注意的是,对于开始位置beginindex,Java是基于字符串的首字符为0来进行处理的,但是对于终止位置endindex,Java是基于字符串的首字符为1来处理的,如下图所示。
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
← |
计算起始位置 |
青 |
春 |
无 |
悔 |
无 |
悔 |
青 |
春 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
← |
计算终止位置 |
例如,要提取“青春无悔无悔青春”中的“无悔无悔”。
String s="青春无悔无悔青春";
String result=s.substring(2,6);
(5)trim()方法
该方法可以忽略字符串前后的空格,。在接收用户输入的字符串时,一般会调用trim()方法过滤掉字符串前后的多余空格。
3、复杂的字符串处理——字符串的拆分
Java的String类提供了一个拆分字符串的方法split(),将一个字符串分隔为子字符串,结果作为字符串数组返回。
语法:
字符串1.split(String separator,int limit);
其中:
(1)separator可选项,标识拆分字符串时使用一个或多个字符。如果不选择该项,则返回包含该字符串所有单个字符的元素数组。
(2)limit可选项,该值用来限制返回数组中的元素个数。
StringBuffer类
StringBuffer类位于java.lang包中,是String类的增强型。
使用StringBuffer类也需要两步完成。
1、声明StringBuffer对象并初始化。
//声明一个空的StringBuffer对象
StringBuffer sb1=new StringBuffer();
//声明一个字符串“青春无悔”
StringBuffer sb2=new StringBuffer("青春无悔");
2、使用StringBuffer对象
StringBuffer类提供了很多方法以供使用,调用时使用“.”操作符完成。
常用的StringBuffer类方法
1、语法:字符串1.toString();
将StringBuffer类型的字符串1转换为String类型的对象并返回。
例如:
String s1=sb2.toString(); //转换为String类
2、语法:字符串1.append(字符串2);
将字符串2连接到字符串1后并返回。
该方法和String类的concat()方法一样,都是把一个字符串追加到另一个字符串后面,所不同的是String中只能将String类型的字符串追加到一个字符串后,而StringBuffer可以将任何类型的值追加到字符串之后。
3、语法:字符串1.insert(位置,参数);
将参数插入到字符串1的指定位置(int类型)后并返回。参数可以是包括String的任何类型。
标签:
原文地址:http://www.cnblogs.com/water5832/p/5648649.html