String类中部分方法的使用

目录

一、API

二、String类

1、String类的构造方法(4个)

三、String对象比较(equals,equalsIgnoreCase)—返回布尔值

(1)equals

(2)equalsIgnoreCase

四、String的遍历( charAt,length())

1、charAt:索引处的值

2、length():字符串长度

五、String截取和替换(substring,replace)

1、substring:截取

(1) beginIndex

(2)beginIndex,endIndex

2、replace:替换

六、其他方法

1、concat:连接,拼接

2、contains:包含(返回布尔值)

3、endsWith、startsWith(返回布尔值)

(1)endsWith(以什么结尾)

(2)startsWith(以什么开头)

4、indexOf、lastIndexOf

(1)indexOf(从前往后查找字符串)

(2)lastIndexOf(从后往前查找字符串)

5、toCharArray、getBytes

(1)toCharArray(字符串转换为字符数组)

(2)getBytes(字符串转换字节数组)

6、toLowerCase、toUpperCase

(1)toLowerCase:转换为小写字符串

(2)toUpperCase:转换为大写字符串

7、trim:去掉字符串两端空格

8、split:切割


一、API

什么是API文档?——JAVA的葵花宝典

API(Application Programming Interface),应用程序编程接口Java API是一本程序员的字典,是JDK中提供给我们使用的类的说明文档。使用API可以快速的查看类中有哪些成员变量,成员方法和构造方法所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们

怎么用:

 顺带说一句lang包无需导包

一个类的构成主要包含什么?

     ———  属性(成员变量),构造方法,成员方法

查String类的API帮助文档主要查什么?

二、String类

 ——可以被共享,字符串是常量,值不可更改

1、String类的构造方法(4个)

目前最简单的方法就是:

String s5=“abc”

  • String() 创建一个空的字符串对象
//      String() 创建一个空的字符串对象

       String s1=new String();//“ ”
  • String(String original) 通过参数传递的字符串常量,创建一个新的字符串对象
//  String(String original) 通过参数传递的字符串常量,创建一个新的字符串对象

       String s2=new String(original:"好好");
  • String(char[] value)通过参数传递的字符数组,创建一个新的字符串对象
//String(char[] value)通过参数传递的字符数组,创建一个新的字符串对象

       char[] chars = {'a','b','c','1','2','@','中'};

       String s3 = new String(chars);

       System.out.println(s3);//"abc12@中"
  • String(byte[] bytes)通过参数传递的字节数组,查询编码表,创建一个新的字符串对象(简化写法——String s5=“abc”)
/*

String(byte[] bytes)通过参数传递的字节数组,查询编码表,创建一个新的字符串对象

ASCII表:计算机中存储的数字和生活中的文字的对应关系

'a'==>97==>01100001==>存储到计算机中

'A'==>65

'0'==>48

*/

       byte[] bytes = {65,66,67,68,69};

       String s4 = new String(bytes);

       System.out.println(s4);//"ABCDE"

2、String创建对象的区别

  • 字符串是常量;它们的值在创建之后不能更改。因为 String 对象是不可变的,所以可以共享。

  • 以“ ”方式给出的字符串,只要字符串相同,无论在程序代码中出现几次,在常量池中只有一个对象

  • 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同

面试题:

(1)String的面试题:问题下列代码的运行结果是?——true

(2)String的面试题:问题下列代码的运行结果是?

  • ”“的字符串之间进行拼接,在编译的时候,就会将"ab"+"c”拼接为“abc“
  • 变量字符串进行拼接,代码内部会自动使用new String创建新的 字符串

三、String对象比较(equals,equalsIgnoreCase)—返回布尔值

使用 == 做比较 

  • 基本类型:比较的是数据值是否相同  10==20    10==10
  • 引用类型:比较的是地址值是否相同  0x111==0x222

如果想要比较字符串的内容是否相同,需要使用方法:

(1)equals

——将此字符串与指定对象进行比较,用于比较两个字符串的内容是否相同,区分大小写(登录)

方法原型:

public boolean eauals(String s)

使用:

String s1 = "abc";

String s2 = "abc";

boolean b1 = s1.equals(s2);//区分

(2)equalsIgnoreCase

——用于比较两个字符串的内容是否相同,忽略大小写(验证码)

方法原型:

boolean equalsIgnoreCase(String anotherString)

使用:

System.out.println("b1:"+b1);//b1:true

boolean b4 = s1.equalsIgnoreCase(s2);//不区分

System.out.println("b4:"+b4);//b4:true

#############使用########

String s1 = "abc";

String s2 = "abc";

boolean b1 = s1.equals(s2);

System.out.println("b1:"+b1);//b1:true

boolean b4 = s1.equalsIgnoreCase(s2);

System.out.println("b4:"+b4);//b4:true

四、String的遍历( charAt,length())

——依次打印字符串中的每一个字符

1、charAt:索引处的值

——返回指定索引处的char值:(字符串的索引也是从0开始的)

方法原型:

public char charAt(int index):

使用:

String str = "你若安好,便是晴天!";

System.out.println(str.charAt(0));//'你’

2、length():字符串长度

—— 返回此字符串的长度:(数组是arr.length—没有括号)

方法原型:

public int length( ) :

使用

str.length();//

############使用########

//数组遍历

/*int[] arr = {1,2,3,4,5};

for (int i = 0; i < arr.length; i++) {

System.out.println(arr[i]);

}*/

       String str = "你若安好,便是晴天!";

//索引 0 1 2 3 4 5 6 7 8 9

       System.out.println(str.charAt(0));//'你'

       System.out.println(str.charAt(1));//'若'

       System.out.println(str.charAt(2));//'安'

       System.out.println(str.charAt(3));//'好'

       System.out.println(str.charAt(4));//','

       System.out.println(str.charAt(10));//StringIndexOutOfBoundsException:

       String index out of range: 10

       System.out.println(str.length());//10

       System.out.println("----------------------------------------");

       for (int i = 0; i < str.length(); i++) {

//获取字符串中的每一个字符

           char c = str.charAt(i);

           System.out.println(c);

sc.nextLine()======>获取一行字符串

sc.next()=======>无法获取空格后的字符串

nextInt()和nextLine()一起用有冲突

########统计字符次数案例###########

/*

统计字符次数案例(重点)

需求:”abcAAAdsafasd1sd11AA@@#@@@A”

键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数

(不考虑其他字符)

思路:

1. 键盘录入一个字符串,用 Scanner 实现

2. 要统计三种类型的字符个数,需定义三个统计变量,初始值都为0

int c1=0; int c2=0; int c3=0;

3. 遍历字符串,得到每一个字符

4. 判断该字符属于哪种类型,然后对应类型的统计变量+1

大写字母:ch>='A' && ch<='Z’ ch>=65 && ch<=90

小写字母:ch>='a' && ch<='z’

数字 : ch>='0' && ch<='9‘

5. 循环结束,输出三种类型的字符个数

*/

//1. 键盘录入一个字符串,用 Scanner 实现

               Scanner sc = new Scanner(System.in);

               System.out.println("请输入一个字符串:");

               String str = sc.nextLine();

               System.out.println(str);

//2. 要统计三种类型的字符个数,需定义三个统计变量,初始值都为0

               8.字符串拼接案例

                定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,

                并在控制台输出结果。例如,数组为 int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3]

               int c1=0;

               int c2=0;

               int c3=0;

               int c4=0;

//3. 遍历字符串,得到每一个字符

               for (int i = 0; i < str.length(); i++) {

                   char ch = str.charAt(i);

//4. 判断该字符属于哪种类型,然后对应类型的统计变量+1

                   if(ch>='A'&&ch<='Z'){ //byte,short,char在参与计算时,会把自己提升为int类型

                       if(97>=65 && 97<=90){}

                        c1++;

                   }else if(ch>='a'&&ch<='z'){

                        c2++;

                   }else if(ch>='0'&&ch<='9'){

                        c3++;

                   }else{

                        c4++;

                   }

               }

//5. 循环结束,输出三种类型的字符个数

               System.out.println("字符串中大写字符有:"+c1+"个");

               System.out.println("字符串中小写字符有:"+c2+"个");

               System.out.println("字符串中数字字符有:"+c3+"个");

               System.out.println("字符串中其他字符有:"+c4+"个");

########验证码案例########### 

/*

需求:

1.生成一个5位的随机验证码

验证码的取值范围:所有大写字母,小写字母和数字

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

例如: String code = "AX1a2";

2.使用Scanner获取用户输入的验证码

3.比较用户输入的验证码和随机产生的是否相同(忽略大小写)

相同:打印"验证码输入正确"

不同:打印"验证码输入有误"

*/

public static void main(String[] args) {

//    1、定义字符串

   String str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

//    2、定义Random获取str中的随机数

   Random num=new Random();

   String count="";

//    3、使用for循环获取系统生成的随机验证码

   for (int i = 0; i < 5; i++) {

       //  (1)定义一个num用于获取索引数 方法:str.length())

       int index=num.nextInt(str.length());

       //  (2)用该索引获取str对应的值 方法:charAt

       //  (3)用一个空字符串接收

        count+=str.charAt(index);

   }

   System.out.println("验证码为:"+count);

   System.out.println("请输入验证码:");

//    4、使用Scanner获取用户输入的验证码

   Scanner sc=new Scanner(System.in);

   String count1=sc.next();

//    5、用equalsIgnoreCase()来区分验证码是否相同,用b来接受返回的boolean值

     boolean b=count1.equalsIgnoreCase(count);

//    相同:打印"验证码输入正确"

   if(b==true){

       System.out.println("验证码输入正确");

   }

//    不同:打印"验证码输入有误"

   else {

       System.out.println("验证码输入有误");

   }



}

}

五、String截取和替换(substring,replace)

1、substring:截取

(1) beginIndex

——从beginIndex开始截取字符串到字符串结尾,得到新的字符串并返回0

方法原型:

String substring(int beginIndex)

使用:

String str = "abcde";

String s1 = str.substring(1);//"bcde"

String s2 = str.substring(3);//"de"

(2)beginIndex,endIndex

——从beginIndex索引位置开始截取,截取到endIndex索引位置,得到新字符串并返回(包含头,不包含尾)

方法原型:

String substring(int beginIndex, int endIndex)

使用:

String s3 = str.substring(1,3);//"bc"

2、replace:替换

——将当前字符串中的target (旧值 )内容,使用replacement (新值) 进行替换,返回新的字符串

方法原型:

String replace(String target, String replacement)

使用

String s4 = str.replace("cd","@_@");//"ab@_@e"

########截取和替换######### 

 public static void main(String[] args) {

       String str = "键盘敲碎,月薪过万,迎娶白富美,走向人生巅峰!";

//需求:把字符串中的"走向人生巅峰!"截取出来,并打印

       String s1 = str.substring(16);

       System.out.println(s1);//走向人生巅峰!

//需求:把字符串中的"月薪过万"截取出来,并打印

       String s2 = str.substring(5, 9);

       System.out.println(s2);//月薪过万

//需求:把字符串中的"白富美",替换为"***".并打印

       String s3 = str.replace("白富美", "***");

       System.out.println(s3);//键盘敲碎,月薪过万,迎娶***,走向人生巅峰!

六、其他方法

1、concat:连接,拼接

——将当前字符串与参数字符串进行"拼接",返回一个新字符串

方法原型:

public String concat (String str)

使用:

"aa".concat("bb")==>"aabb" "aa"+"bb"==>"aabb"

注意:

  • concat方法拼接的速度快 
  • concat只能用于字符串拼接,+可以拼接任意的内容

 //链式编程:如果方法的返回值还是一个字符串,可以使用返回的字符串继续调用方法

/*

String s4 = s1.concat(s2).concat("呵呵").concat("哈哈").concat("嘿嘿");

System.out.println(s4);//aabb呵呵哈哈嘿嘿

*/

2、contains:包含(返回布尔值)

——判断参数字符串在当前字符串中是否存在(区分大小写)。存在,返回true,否则,返回false。

 方法原型:

public boolean contains (String s)

使用:

str.contains("我好");

/*

String str = "你好,我好,大家好,Hello";

boolean b1 = str.contains("我好");

System.out.println("b1:"+b1);//b1:true

boolean b2 = str.contains("hello");

System.out.println("b2:"+b2);//b2:false

*/

#########是否包含@符号和.符号########

/*需求:

请用户从控制台输入一个“Email地址” 1312312@qq.com zhagsan@163.com

判断此Email地址中是否包含@符号和.符号 if(str.contains("@" &&

str.contains("."))){}

如果全部包含,打印:合法,否则打印:不合法的Email地址。

*/

       public class Demo03Test {

           public static void main(String[] args) {

//请用户从控制台输入一个“Email地址”

               Scanner sc = new Scanner(System.in);

               System.out.println("请输入您的邮箱地址:");

               String email = sc.next();

//判断此Email地址中是否包含@符号和.符号

               if(email.contains("@") && email.contains(".")){

                   System.out.println("合法的Email地址");

               }else{

                   System.out.println("不合法的Email地址");

               }

3、endsWith、startsWith(返回布尔值)

(1)endsWith(以什么结尾)

——测试此字符串是否以指定的后缀结尾(区分大小写)

方法原型:

public boolean endsWith(String suffix)

使用:

String str = "hello,你好,嘿嘿";

str.endsWith("嘿嘿"));//true

(2)startsWith(以什么开头)

——测试此字符串是否以指定的前缀开始(区分大小写)

方法原型:

public boolean startsWith(String prefix)

使用:

str.startsWith("张三"));//false

/*

String str = "hello,你好,嘿嘿";

System.out.println(str.endsWith("嘿嘿"));//true

System.out.println(str.endsWith("呵呵"));//false

System.out.println(str.startsWith("张三"));//false

System.out.println(str.startsWith("hello"));//true

*/

####判断用户名,是否姓张####

//需求:判断用户名,是否姓张

System.out.println("张三".startsWith("张"));//true

       System.out.println("李三".startsWith("张"));//false

       System.out.println("张三".charAt(0)=='张');//true

       System.out.println("李三".charAt(0)=='张');//false

4、indexOf、lastIndexOf

(1)indexOf(从前往后查找字符串)

——功能:返回参数字符串在当前字符串中第一次出现的索引,如果不包含,则返回-1

 方法原型:

public int indexOf(String str) 

(2)lastIndexOf(从后往前查找字符串)

方法原型:

public int lastIndexOf(String str)】

——功能:返回参数字符串在当前字符串中最后一次出现的索引。 如果不包含,则返回-1.

       //需求:判断用户名,是否姓张

       String str = "你好abc,我好abc,大家好abc";

       //需求:在字符串中查找"abc"这个字符串的索引

       System.out.println(str.indexOf("abc"));//2

       System.out.println(str.lastIndexOf("abc"));//15

5、toCharArray、getBytes

(1)toCharArray(字符串转换为字符数组)

——字符串转换为字符数组

String str = "abc";

char[] chars = str.toCharArray();//{'a','b','c'}

(2)getBytes(字符串转换字节数组)

——字符串查询编码表转换字节数组

byte[] bytes = str.getBytes();//{97,98,99}

6、toLowerCase、toUpperCase

(1)toLowerCase:转换为小写字符串

——把字符串中所有的英文字符转换为小写

"ABC123你好"==>"abc123你好"

String str = "abcHELLOHeHe中国12312";

String s1 = str.toLowerCase();

System.out.println(s1);//abchellohehe中国12312

(2)toUpperCase:转换为大写字符串

——把字符串中所有的英文字符转换为大写

"ABC123你好"==>"abc123你好"

String s2 = str.toUpperCase();

System.out.println(s2);//ABCHELLOHEHE中国12312

7、trim:去掉字符串两端空格

——可用于用户登录

8、split:切割

String str=“张三,20,男”

String [ ] arr=str.split(",");

for(int i=0;i<arr.lrngth;i++)

sout(arr);//“

张三 

20

男

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在JavaString类提供了许多常用的方法,用于处理字符串。以下是一些常见的String方法: 1. `length()`:返回字符串的长度。 2. `charAt(int index)`:返回指定索引位置的字符。 3. `substring(int beginIndex)`:返回从指定索引位置开始到字符串末尾的子字符串。 4. `substring(int beginIndex, int endIndex)`:返回从指定的开始索引到结束索引之间的子字符串。 5. `toLowerCase()`:将字符串的所有字符转换为小写。 6. `toUpperCase()`:将字符串的所有字符转换为大写。 7. `trim()`:去除字符串两端的空格。 8. `startsWith(String prefix)`:检查字符串是否以指定的前缀开头。 9. `endsWith(String suffix)`:检查字符串是否以指定的后缀结尾。 10. `contains(CharSequence sequence)`:检查字符串是否包含指定的字符序列。 11. `equals(Object obj)`:比较字符串是否相等。注意要使用`equals`方法比较字符串,而不是使用`==`运算符。 12. `equalsIgnoreCase(String anotherString)`:忽略大小写比较字符串是否相等。 13. `indexOf(int ch)`:返回指定字符在字符串第一次出现的索引位置。 14. `lastIndexOf(int ch)`:返回指定字符在字符串最后一次出现的索引位置。 15. `replace(char oldChar, char newChar)`:将字符串的所有旧字符替换为新字符。 16. `replaceAll(String regex, String replacement)`:使用新字符串替换字符串的所有匹配正则表达式的子字符串。 17. `split(String regex)`:根据指定的正则表达式将字符串拆分为字符串数组。 18. `startsWith(String prefix, int offset)`:从指定索引位置开始检查字符串是否以指定的前缀开头。 19. `endsWith(String suffix)`:从指定索引位置开始检查字符串是否以指定的后缀结尾。 20. `isEmpty()`:检查字符串是否为空。 这些只是String部分常用的方法,还有其他更多方法可用于字符串的操作和处理。你可以根据具体的需求选择适合的方法来操作字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值