13、字符串操作

目录

一、获取子字符串

(1)substring(int beginIndex)

(2)substring(int beginIndex, int endIndex)

二、去除空格

三、字符串替换

(1)startsWith()方法

(2)endsWith()方法

五、判断字符串是否相等

(1)equals()方法

(2)equalsIgnoreCase()方法

六、按字典顺序比较两个字符串

七、字母大小写转换

(1)toLowerCase()方法

(2)toUpperCase()方法

八、字符串分割

(1)split(String sign)

(2)split(String sign,int limit)


一、获取子字符串

通过String类的substring()方法可对字符串进行截取。这些方法的共同点就是都利用字符串的下标进行截取,且应明确字符串下标是从0开始的。

substring()方法被两种不同的方法重载,来满足不同的需要。

(1)substring(int beginIndex)

该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。

语法如下:

其中,beginIndex指定从某一索引处开始截取字符串。

例1:截取字符串(就不在这写完整代码了哦~~~

使用substring(beginIndex)截取字符串的过程:

注意:在字符串中,空格占用一个索引位置。

(2)substring(int beginIndex, int endIndex)

该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串。

语法如下:

  • beginIndex:开始截取子字符串的索引位置。
  • endIndex:子字符串在整个字符串中的结束位置。

例2:在项目中创建类Subs,在主方法中创建String对象,实现使用substring()方法对字符串进行截取,并将截取后形成的新串输出

public class Subs {  //创建类

       public static void main(String[]args) {  //主方法
              String str="We are students";  //定义字符串
              String substr=str.substring(0,3);  //对字符串进行截取
              System.out.println(substr);  //输出结果

       }
}

运行结果:

二、去除空格

trim()方法返回字符串的副本,忽略前导空格和尾部空格。

语法如下:

其中,str为任意字符串对象。

例3:在项目中创建类Blak,在主方法中创建String对象,将字符变量原来的长度与去掉前导和尾部空格后的长度输出

public class Blak {  //创建类

       public static void main(String[]args) {  //主方法
              String str=" We are students ";  //定义字符串
              //将变量size输出
              System.out.println("空字符原来的长度:"+str.length());
              //将str去掉前导和尾部的空格后的结果输出
              System.out.println("字符串str去掉空格后的长度是:"+str.trim().length());

       }
}

运行结果:

三、字符串替换

replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。

语法如下:

  • str.replace(char oldChar,char newChar)
  • oldChar:要替换的字符或字符串。
  • newChar:用于替换原来字符串的内容。

replace()方法返回的结果是一个新的字符串。如果字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回。

例4:在项目中创建类NewStr,在主方法中创建String型变量,将字符变量中的字母a替换成A后的结果输出

public class NewStr {

       public static void main(String[]args) {  //主方法
              String str=" We are students ";  //定义字符串
              //将字符串中的a替换成A
              String newstr=str.replace("a", "A");
              //将str去掉前导和尾部的空格后的结果输出
              System.out.println("新字符串是:"+newstr);

       }
}

运行结果:

注意

如果要替换的旧字符在字符串中重复出现多次,replace()方法会将所有旧字符全部替换成新字符。例如:

String str = "java project";
String newstr = str.replace("j","J");

此时,newstr的值为Java proJect。 

需要注意的是,要替换的旧字符的大小写要与原字符串中字符的大小写保持一致,否则不能成功地替换。例如,上面的实例如果写成如下语句,则不能成功替换。

String str = "java project";
String newstr = str.replace("P","t");

四、判断字符串的开始与结尾

startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。

(1)startsWith()方法

该方法用于判断当前字符串对象的前缀是否为参数指定的字符串。

语法如下:

其中,prefix是指作为前缀的字符。

(2)endsWith()方法

该方法用于判断当前字符串是否为以给定的子字符串结束。

语法如下:

其中,suffix是指作为后缀的字符串

例5:在项目中创建类StartOrEnd,在主方法中创建String型变量,并判断变量的前导和后置字符串

public class StartOrEnd {  //创建类

       public static void main(String args[]){  //主方法
                     String num1 ="22045612";  //定义字符串num1
                     String num2 = "21304578";  //定义字符串num2
                     boolean b = num1.startsWith("22");  //判断字符串num1是否以′22'开头
                     boolean b2 = num1.endsWith("78");  //判断字符串num1是否以'78结束
                     boolean b3 = num2.startsWith("22");  //判断字符串num2是否以'22开头
                     boolean b4 = num2.endsWith("78");  //判断字符串num2是否以"78结束
                     System.out.println("字符串num1是以'22'开始的吗?"+ b);
                     System.out.println("字符串num1是以'78'结束的吗?"+ b2);  //输出信息
                     System.out.println("字符串num2是以'22'开始的吗?"+ b3);
                     System.out.println("字符串num2是以'78'结束的吗?"+ b4);

       }
}

运行结果:

五、判断字符串是否相等

对字符串对象进行比较不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false。

例6:使用比较运算符比较两个字符串

此时,布尔型变量b的值为false,因为字符串是对象,tom、jerry是引用。

如果要比较两个字符串内容是否相等,应使用equals()方法和equalsIgnoreCase()方法。

(1)equals()方法

如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较时,返回true。

语法如下:

其中,str、otherstr是要比较的两个字符串对象。

(2)equalsIgnoreCase()方法

使用equals()方法对字符串进行比较时是区分大小写的,而使用equalsIgnoreCase()方法是

在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍为boolean类型。

语法如下:

其中,str、otherstr是要比较的两个字符串对象。

例7:在项目中创建类Opinion,在主方法中创建String型变量,实现判断两个字符串是否相等,并将结果输出(以此来判断equals()方法和equalsIgnoreCase()方法的区别)

public class Opinion {  //创建类

       public static void main(String[]args) {  //主方法
              String s1=new String("abc");  //创建字符串对象s1
              String s2=new String("ABC");  //创建字符串对象s2
              String s3=new String("abc");  //创建字符串对象s3
              //使用equalsIgnoreCase()方法比较s1和s2
              boolean b=s1.equals(s2);
              boolean b2=s1.equalsIgnoreCase(s2);
              System.out.println(s1+"等于"+":"+b);  //输出信息
              System.out.println(s1+"不等于"+":"+b2);  //输出信息

       }
}

运行结果:

六、按字典顺序比较两个字符串

compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0。

语法如下:

其中,str、otherstr是要比较的两个字符串对象。

注意:compareTo()方法只有在equals(Object)方法返回true时才返回0。

例8:在项目中创建类Wordbook,在主方法中创建String变量,使用compareTo()方法将字符变量进行比较,并将比较结果输出

public class Wordbook {  //创建类

       public static void main(String[]args) {  //主方法
              String s1=new String("b");  //创建字符串对象s1
              String s2=new String("a");  //创建字符串对象s2
              String s3=new String("c");  //创建字符串对象s3
              System.out.println(s1+" compareTo "+s2+":"+s1.compareTo(s2));  //输出信息
              System.out.println(s1+" compareTo "+s3+":"+s1.compareTo(s3));  //输出信息

       }
}

运行结果:

七、字母大小写转换

字符串的toLowerCase()方法可将字符串中的所有字符从大写字母改写为小写字母,而toUpperCase()方法可将字符串中的小写字母改写为大写字母。

(1)toLowerCase()方法

该方法将String转换为小写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则将返回一个新的字符串,将原字符串中每个该进行小写转换的字符都转换成等价的小写字符。字符长度与原字符长度相同。

语法如下:

其中,str是要进行转换的字符串。

(2)toUpperCase()方法

该方法将String转换为大写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则返回一个新字符串,将原字符串中每个该进行大写转换的字符都转换成等价的大写字符。新字符长度与原字符长度相同。

语法如下:

其中,str是要进行转换的字符串。

注意:使用toLowerCase()方法和toUpperCase()方法进行大小写转换时,数字或非字符不受影响。

例9:在项目中创建类UpAndLower,在主方法中创建String型变量,实现字符变量的大小写转换,并将转换后的结果输出

public class UpAndLower {  //创建类

       public static void main(String[]args) {  //主方法
              String s=new String("abc DEF");  //创建字符串
              String s1=s.toLowerCase();  //进行小写转换
              String s2=s.toUpperCase();  //进行大写转换
              System.out.println(s1);  //将转换后的结果输出
              System.out.println(s2);

       }
}

运行结果:

八、字符串分割

使用split()方法可以使字符串按指定的分割字符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中。split()方法提供了以下两种字符串分割形式。

(1)split(String sign)

该方法可根据给定的分割符对字符串进行拆分。

语法如下

其中,sign为分割字符串的分割符,也可以使用正则表达式。

注意:没有统一的对字符进行分割的符号。如果想定义多个分割符,可使用符号“|”。例如,“,|=”表示分割符分别为“,”和“=”。

(2)split(String sign,int limit)

该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。

语法如下:

  • sign:分割字符串的分割符,也可以使用正则表达式。
  • limit:限制的分割次数。

例10:在项目中创建类Division,在主方法中创建String型变量,并将字符变量进行分割,将分割后的结果输出

public class Division {

       public static void main(String[]args) {
              String s="192.168.0.1";  //创建字符串
              //按照“.”进行分割,使用转义字符“\\.”
              String[]firstArray=s.split("\\.");
              //按照“.”进行两次分割,使用转义字符“\\.”
              String[]secondArray=s.split("\\.",2);
              //输出s原值
              System.out.println("s的原值为:["+s+"]");
              //输出全部分割的结果
              System.out.println("全部分割的结果:");
              for(String a:firstArray) {
                     System.out.print("["+a+"]");
              }
              System.out.println();  //换行
              //输出分割两次的结果
              System.out.println("分割两次的结果:");
              for(String a:secondArray) {
                     System.out.print("["+a+"]");
              }
              System.out.println();  //换行

       }
}

运行结果:

猜你喜欢

转载自blog.csdn.net/qq_25990967/article/details/128773148
今日推荐