字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串相关的知识,希望对你有一定的参考价值。

    本章单词:

      quual:相等的

      ignore:忽视

      lower:低的

      last:最后

      trim:忽略不计

      concatenate:链接

      buffer:缓冲区

      final:最终的

    &预习一下代码输出结果是什么:

      

技术分享
public static void main(String[] args){
        String s1=new String("abc");
        String s2=new String("abc");
        if(s1.equals(s2)){
            System.out.println("相等");
        }else{
            System.out.println("不相等");
        }
        
    }
euqals的区别

 

      一、字符串概述

          &字符串是一系列字符组成的序列

      (1)如何使用字符串:

          简单来说,使用字符串主要分为两步

            1.定义并初始化字符串

            2.使用字符串,对字符串进行一些处理

        语法:

          String s="hello";

          创建String对象的另外两种方法如下列代码所示:

            //创建一个空字符串

              String s=new String();

            或者

            //创建一个字符串对象“hello world”;

              String s=new String("hello world");

    二、字符串的长度

        如何计算字符串的长度呢?

          String 类提供了length()方法。字符串是一串字符序列,String类的length()方法用来确定字符串的长度,即字符串中的字符数目。

          调用length()方法返回的结果就是字符串中的字符数

        调用length()方法的语法如下

          语法:

            字符串a.length();

            //返回字符串a的长度

        示例:

        

技术分享
 1 public static void main(String[] args) {
 2         Scanner input=new Scanner(System.in);
 3         String user,password;//用户名与密码
 4         String a="y";
 5         do{
 6             System.out.println("请输入用户名:");
 7             user=input.next();
 8             System.out.println("请输入密码:");
 9             password=input.next();
10             if(password.length()>=6){
11                 System.out.println("注册成功");
12                 break;
13             }else{
14                 System.out.println("密码长度不能小于6位!!!");
15                 System.out.println("是否继续注册:(y/n)");
16                 a=input.next();
17             }
18         }while(a.equals("y"));
19     }
调用length()方法

 

     三、字符串的比较

        语法:

          字符串1.equals(字符串2);

        //比较两个字符串的值是否相同,返回值Boolean类型的值,如果相同,则返回true,否则false

        示例:

          

技术分享
 1 public static void main(String[] args) {
 2         Scanner input=new Scanner(System.in);
 3         String user,password;//用户名与密码
 4         System.out.println("请输入用户名:");
 5         user=input.next();
 6         System.out.println("请输入密码:");
 7         password=input.next();
 8         if(user.equals("TOM")&&password.equals("1234567")){
 9             System.out.println("登陆成功");
10         }else{
11             System.out.println("用户名或密码不匹配,登陆失败!!!");
12         }
13     }
equals 比较

 

 

 

       疑点解答:

          可能大家会问,为什么不使用双等于== 来判断两个字符串是否相同呢?

            在Java中双等号 == 和 equals()方法虽然都应用于两个字符串,但所判断的内容是有差别的。

            简单的讲==判断的是两个字符串对象再内存中的首地址是否相等,及判断是否是同一个字符串对象,

            而equals()判断的是两个字符串对象的值是否相等。

        示例:

        

技术分享
 1 public static void main(String[] args) {
 2         String s=new String("我爱我的祖国");
 3         String s1=new String("我爱我的祖国");
 4         if(s.equals(s1)){
 5             System.out.println("两个字符串值相同");
 6         }else{
 7             System.out.println("两个字符串值不相同");
 8         }
 9         if(s==s1){
10             System.out.println("两个字符串值相同");
11         }else{
12             System.out.println("两个字符串值不相同");
13         }
14     }
equals和==的区别

 

     四、equals()比较的方法

        &在我们使用equals()方法比较两个字符串时,对于字符的大小写,也在检查范围内,但有时候我们会碰到忽略大小写的验证,如Java和JAVA

          都是指Java这门课程,使用equals()方法比较会认为他们不是一门课,因此,需要另一种方法--equalsIgnoreCase()方法。Ignore是

          忽略的意思,这种写法在比较字符串会忽略字符的大小写,语法如下:

        语法:

          字符串1.equalsIgnoreCase(字符串2);

        示例如下:

    

技术分享
 1 public static void main(String[] args) {
 2         Scanner input=new Scanner(System.in);
 3         String user,password;//用户名与密码
 4         System.out.println("请输入用户名:");
 5         user=input.next();
 6         System.out.println("请输入密码:");
 7         password=input.next();
 8         if(user.equalsIgnoreCase("TOM")&&password.equals("1234567")){
 9             System.out.println("登陆成功");
10         }else{
11             System.out.println("用户名或密码不匹配,登陆失败!!!");
12         }
13 
14     }
忽略大小写的比较方法:equalsIgnoreCase()

 

      &在Java中,String类提供了两个方法改变字符串字符的大小写,

        1.toLowerCase():转换字符串中的英文字母为小写。

        2.toUpperCase():转换字符串中的英文字母为大写。

      语法:

        字符串.toLowerCase();

          //返回字符串的小写形式

        字符串.toUpperCase()

          //返回字符串的大写形式

      示例代码:

  

技术分享
if(user.equalsIgnoreCase("TOM")&&password.equals("1234567")){
            System.out.println("登陆成功");
        }else{
            System.out.println("用户名或密码不匹配,登陆失败!!!");
        }
Java大小写语法

 

      五、复杂的字符串处理

          &请记住,在使用“+”运算符链接字符串和int(或double)类型数据时“+”将int(或double)类型数据自动转换成String类型

          &除此之外,在Java中,String类也提供了另一种方法concat(),将一个字符串连接到另一个字符串的后面,

        语法如下:

          字符串1.concat(字符串2);

      示例代码如下:

 

技术分享
1 public static void main(String[] args) {
2         String s="你好\t";
3         String s1="张三";
4         String s2=s.concat(s1);
5         System.out.println(s2);
6     }
复杂字符串concat()方法链接

 

      六、字符串的提取和查询

          详细介绍请阅读以下代码:

技术分享
 1 public static void main(String[] args) {
 2         /**
 3          * indexOf()
 4          * 该方法是在字符串内搜索某个指定的字符或字符串,
 5          * 它返回出现第一个匹配字符的位置
 6          */
 7         String s="青春误会";
 8         int dex=s.indexOf(‘误‘);
 9         System.out.println(dex);
10         /**
11          * lastIndexOf()
12          * 该方法也是在字符串内搜索某个指定的字符或字符串,
13          * 但是他搜索最后一个出现的字符或字符串的位置。
14          * 执行后,返回字符串“无悔”的首字符位置 c的值为4
15          */
16         String x="青春无悔无悔青春";
17         int c=x.lastIndexOf("无悔");
18         System.out.println(c);
19         /**
20          * 该方法用于提取从位置索引开始的字符串部分,
21          * 调用时括号中写的是要提取的字符串的开始位置
22          * 方法的返回值就是要提取的字符串。
23          */
24         String v="青春无悔";
25         String m=v.substring(2);
26         System.out.println(m);
27         /**
28          * substring(int beginindex,int endindex)
29          * 该方法用于提取位置beginindex和位置endindex位置之间的字符串部分。
30          * 特别注意的是,对该方法开始位置beginindex,java是基于字符串的首字符为0来进行处理的,
31          * 但是对于终止位置endindex,java是基于字符串的首字符为1来处理的。 
32          */
33         String q="青春无悔无悔青春";
34         String w=q.substring(2, 6);
35         System.out.println(w);
36     }
提取和查询

              5、trim()方法

            &该方法可以忽略字符串前后的空格,因此,在接收用户输入的字符串时,一般会调用trim()方法过滤掉字符串前后的多余空格。

      七、字符串的拆分

          语法:

            字符串1.split(String separator,int limit);

          其中:(1)separator可选项,标识拆分字符串时使用一个或多个字符,如果不选择该项,则返回包含该字符串所有单个字符的元素数组。

             (2)limit可选项,该值用来限制返回数组中的元素个数。

        示例代码如下:

    

技术分享
 1 public static void main(String[] args) {
 2         String words="长亭外 古道边 芳草碧蓝天 晚风扶 柳笛声残 夕阳山外山";
 3         String[] printword=new String[100];//定义数组接收
 4         System.out.println("***原歌词为***\t"+words);
 5         System.out.println("***拆分后歌词格式***");
 6         printword=words.split(" ",5);//以空格为单位拆分,拆分行数为5行
 7         for(int i=0;i<printword.length;i++){
 8             System.out.println(printword[i]);
 9         }
10     }
拆分

 

 

·StringBuffer类

          &如何使用StringBuffer类

        StringBuffer 类位于Java.lang 包中,是String 类的增强类。使用StringBuffer 类也需要两步完成。

          1.声明StringBuffer 对象并初始化

            //声明一个空的StringBuffer 对象

            StringBuffer sb=new StringBuffer();

            //声明一个字符串  “青春无悔”;

            StringBuffer sb2=new StringBuffer("青春无悔");

          2.使用StringBuffer 对象

            StringBuffer类提供了很多方法以供使用,调用时使用 “.” 操作符完成。

          3.将StringBuffer 类型的字符串1 转换为 String 类型的对象并返回。

            字符串1 .toSting();

                String ss=sb2.toString();

          4.将字符串2 连接到 字符串1 后并返回。

            字符串1.append(字符串2);

              该方法和String 类的 concat()方法一样,都是把一个字符串追加到另一个字符串后面,所不同的是Sting中只能将

              String 类型的字符串追加到一个字符串后,而StringBuffer 可以任何类型的值追加到字符串之后。

技术分享StringBuffer append.()追加

    ·将参数插入字符串

                 语法:

           字符串1.insert (位置,参数);

             &将参数插入字符串1 的指定位置(int 类型)后并返回。参数可以包括String 的任何类型。

           分析:利用StringBuffer 类的 length()方法,获取数字字符串的长度,使用for 循环从后向前每隔三位插入一个逗号。

    

技术分享插入 字符

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

        

 








以上是关于字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP 代码片段

JavaScript 代码片段

CSP核心代码片段记录

带有神秘附加字符的 Javascript Date getTime() 代码片段

web代码片段

vs code 自定义代码片段