0


【手把手带你学JavaSE】String类(下篇)

目录

前言

上篇我们已经学习了String类的一些知识,接下来我们接着学习!

一、字符串查找

字符串查找也是字符串中非常常见的操作,String类提供的常用查找的方法。
在这里插入图片描述
在这里插入图片描述

二、字符串转换

2.1 数值和字符串转化

static String valueof() 数值转字符串
Integer.parseInt() 字符串整形
Double.parseDouble() 字符串转浮点型

classStudent{String name;int age;publicStudent(String name,int age){this.name = name;this.age = age;}@OverridepublicStringtoString(){return"Student{"+"name='"+ name +'\''+", age="+ age +'}';}}publicclassTest{publicstaticvoidmain(String[] args){String s1 =String.valueOf(123);String s2 =String.valueOf(12.3);String s3 =String.valueOf(true);String s4 =String.valueOf(newStudent("ahdiauhd",23));System.out.println(s1);System.out.println(s2);System.out.println(s3);System.out.println(s4);System.out.println("===========================");int data1 =Integer.parseInt("1234");double data2 =Double.parseDouble("12.5");System.out.println(data1);System.out.println(data2);}}

在这里插入图片描述

2.2 大小写转化

String toUpperCase() 转大写
String toLowerCase() 转小写
这两个函数只转换字母。

publicstaticvoidmain(String[] args){String s1 ="Hello";String s2 ="HADSDKJA";//小写转大写System.out.println(s1.toUpperCase());//大写转小写System.out.println(s2.toLowerCase());}

在这里插入图片描述

2.3 字符串和数组的转换

char[ ] toCharArray() 字符串转数组
new String(数组引用) 数组转字符串

publicstaticvoidmain(String[] args){String s ="Hello";//字符串转数组char[] ch = s.toCharArray();for(int i =0; i < ch.length; i++){System.out.println(ch[i]);}System.out.println("===================");//数组转字符串String s2 =newString(ch);System.out.println(s2);}

在这里插入图片描述

2.4 格式化

static String format( );

publicstaticvoidmain(String[] args){String s =String.format("%d-%d-%d",2022,9,17);System.out.println(s);}

在这里插入图片描述

三、字符串替换

使用一个指定的新的字符串替换掉已有的字符串数据,可用的方法如下:

在这里插入图片描述

publicstaticvoidmain(String[] args){String s ="Hello World!";System.out.println(s.replace("l","a"));System.out.println(s.replaceFirst("l","k"));}

在这里插入图片描述
注意事项: 由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串。

四、字符串拆分

可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。

在这里插入图片描述

4.1 拆分处理

publicstaticvoidmain(String[] args){String s1 ="Hello World! Hahaha asjkd";String[] arr = s1.split(" ");//按空格拆分for(String s:arr){System.out.println(s);}}

在这里插入图片描述

4.2 部分拆分

publicstaticvoidmain(String[] args){String s1 ="Hello World! Hahaha asjkd";String[] arr = s1.split(" ",2);for(String s:arr){System.out.println(s);}}

在这里插入图片描述

4.3 拆分IP地址

publicstaticvoidmain(String[] args){String str ="188.166.1.1";String[] arr = str.split("\\.");for(String s: arr){System.out.println(s);}}

在这里插入图片描述

五、字符串截取

在这里插入图片描述

publicstaticvoidmain(String[] args){String s ="Hello World!";System.out.println(s.substring(0));System.out.println(s.substring(0,5));}

在这里插入图片描述
1. 索引从0开始。
2. 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标 。

六、其他的方法

6.1 String trim()

方法:String trim()

功能:去掉字符串中的左右空格,保留中间空格。

publicstaticvoidmain(String[] args){String s ="         Hello World     ";System.out.println("["+s+"]");System.out.println("["+s.trim()+"]");}

在这里插入图片描述

6.2 boolean isEmpty()

isEmpty() 方法用于判断字符串是否为空

publicstaticvoidmain(String[] args){String s ="     ";System.out.println(s.isEmpty());}

在这里插入图片描述

6.3 int length()

用于求字符串的长度

publicstaticvoidmain(String[] args){String s ="MoyuWangPangdudu";System.out.println(s.length());}

在这里插入图片描述

6.4 判断字符串开头结尾

boolean startsWith(String prefix) 判断字符串是否以某个字符串开头的
boolean endWith(String sufix) 判断字符串是否以某个字符串结尾的

publicstaticvoidmain(String[] args){String s ="MoyuWangPangdudu";System.out.println(s.startsWith("Mo"));System.out.println(s.endsWith("dudu"));}

在这里插入图片描述

6.5 boolean contains(String str)

判断字符串中是否包含某个字符串

publicstaticvoidmain(String[] args){String s ="MoyuWangPangdudu";System.out.println(s.contains("Wang"));}

在这里插入图片描述

七、StringBuilder&&StirngBuffer

由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。

这两个类大部分功能是相同的,这里介绍 StringBuilder常用的一些方法.

在这里插入图片描述

publicstaticvoidmain(String[] args){StringBuilder sb1 =newStringBuilder("Hello");StringBuilder sb2 = sb1;//追加:即尾插->字符、字符串、整型数字
        sb1.append("   ");//Hello
        sb1.append("World!");//Hello   World!
        sb1.append(123);//Hello   World!123System.out.println(sb1);System.out.println(sb1 == sb2);//trueSystem.out.println(sb1.charAt(0));// 获取0号位上的字符 HSystem.out.println(sb1.length());// 获取字符串的有效长度17System.out.println(sb1.capacity());// 获取底层数组的总大小

        sb1.setCharAt(0,'h');// 设置任意位置的字符 hello   World!123

        sb1.insert(0,"Hello World!!");// Hello world!!Hello   World!123System.out.println(sb1);System.out.println(sb1.indexOf("Hello"));// 获取Hello第一次出现的位置System.out.println(sb1.lastIndexOf("hello"));// 获取hello最后一次出现的位置

        sb1.deleteCharAt(0);// 删除首字符System.out.println(sb1);
        sb1.delete(0,5);// 删除[0, 5)范围内的字符System.out.println(sb1);String str1 = sb1.substring(0,5);// 截取[0, 5)区间中的字符以String的方式返回System.out.println(str1);

        sb1.reverse();//字符串逆转
        str1 = sb1.toString();// 将StringBuffer以String的方式返回System.out.println(str1);}

在这里插入图片描述

String和StringBuilder最大的区别在于String的内容无法修改,而StringBuilder的内容可以修改。频繁修改字符串的情况考虑使用StringBuilder 。

注意:

String和StringBuilder类不能直接转换。如果要想互相转换,可以采用如下原则:

String变为StringBuilder:
利用StringBuilder的构造方法(StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容)或append()方法

StringBuilder变为String:
调用StringBuilder重写的toString()方法

7.2 String、StringBuffer、StringBuilder的区别

  1. String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.
  2. StringBuffer与StringBuilder大部分功能是相似的
  3. StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作
标签: java servlet 前端

本文转载自: https://blog.csdn.net/weixin_61341342/article/details/126901116
版权归原作者 摸鱼王胖嘟嘟 所有, 如有侵权,请联系我们删除。

“【手把手带你学JavaSE】String类(下篇)”的评论:

还没有评论