关键词搜索

源码搜索 ×
×

(Java)String 类(二)

发布2019-10-28浏览497次

详情内容

一、字符串的内容不可改变

字符串的内容一旦声明则不可改变

public class Test{
    public static void main(String[] args) {
        String str = "hello";
        str = str + "world";
        System.out.println("str = " + str);
    }
}

    在这里插入图片描述
    如图所示,一个 String 对象内容的改变实际上是通过内存地址的“断开-连接”变化完成的,而本身字符串中的内容并没有任何的变化。

    二、String 类中常用方法

    在这里插入图片描述

    (1)字符串与字符数组的转换

    字符串可以使用 toCharrArry() 方法变成一个字符数组,也可以使用 String 类的构造方法把一个字符数组变为一个字符串。

    public class Test{
        public static void main(String[] args) {
            String str1 = "Java";
            char ch[] = str1.toCharArray();//定义字符串
            for(int i=0;i< ch.length;i++){ //循环输出数组里的字符
                System.out.print(ch[i] + "\t");
            }
            System.out.println();
            String str2 = new String(ch);//将全部字符数组变为 String
            String str3 = new String(ch,0,3); //将部分字符数组变为 String
            System.out.println(str2);
            System.out.println(str3);
        }
    }
    
      8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    (2)从字符串中取出指定位置的字符

    可以直接使用 String 类中的 charAt() 方法取出字符串指定位置的字符

    public class Test{
        public static void main(String[] args) {
            String str = "Java";
            System.out.println(str.charAt(3));//取出字符串中第四个字符
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    (3)字符串与 byte 数组的转换

    字符串可以通过 getBytes() 方法将 String 变为一个 byte 数组,之后可以通过 String 的构造方法将一个字节数组重新变为字符串。

    public class Test{
        public static void main(String[] args) {
            String str1 = "Java"; // 定义字符串
            byte bt[] = str1.getBytes(); // 将字符串变为 byte 数组
            System.out.println(new String(bt)); //将全部 byte数组变为字符串
            System.out.print(new String(bt,1,3)); //将部分byte数组变为字符串
        }
    }
    
      8

    在这里插入图片描述

    (4)取得一个字符串的长度

    在 String 中使用 length() 取得字符串的长度

    public class Test{
        public static void main(String[] args) {
            String str1 = "Java"; // 定义字符串
            System.out.print("\"" + str1 + "\"的长度为:" + str1.length());
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    length 与 length() 的区别

    在数组操作中,使用 length 取得数组的长度,但是操作的最后没有 “()”
    但是字符串调用 length() 是一个方法,只要是方法后面都要有 ‘()’

    (5)查找一个指定的字符串是否存在

    在 String 中使用 indexOf() 方法,可以返回指定的字符串的位置,如果不存在则返回 -1

    public class Test{
        public static void main(String[] args) {
            String str1 = "Java"; // 定义字符串
            System.out.println(str1.indexOf("v")); // 查到返回位置
            System.out.println(str1.indexOf("v",2)); //查到返回位置,从第 3 个字符开始查找
            System.out.println(str1.indexOf("h")); //没有查到返回 -1
        }
    }
    
      8

    JDK 1.5 后也可以使用 contains() 方法判断字符串是否存在
    contains() 方法直接返回 boolean 型数据

    public class Test{
        public static void main(String[] args) {
            String str1 = "I am learning Java"; // 定义字符串
            if (str1.contains("Java")){
                System.out.print("可以查询到数据");
            }
        }
    }
    
      8

    (6)去掉左右空格

    可以使用 trim() 方法去掉字符串的左、右空格

    public class Test{
        public static void main(String[] args) {
            String str1 = "  Java  "; // 定义字符串
            System.out.println(str1);
            System.out.println(str1.trim());
        }
    }
    

      在这里插入图片描述

      (7)字符串截取

      在 String 中提供了两个 substring() 方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。

      public class Test{
          public static void main(String[] args) {
              String str1 = "I am learning Java"; // 定义字符串
              System.out.println(str1.substring(5)); // 从第5个位置开始截取
              System.out.println(str1.substring(0,5)); //截取0-5个位置的内容
          }
      }
      

        在这里插入图片描述

        (8)按照指定的字符串拆分字符串

        在 String 中通过 split() 方法可以进行字符串的拆分操作,拆分的数据将以字符串数组的形式返回。

        public class Test{
            public static void main(String[] args) {
                String str1 = "I am learning Java"; // 定义字符串
                String s[] = str1.split(" "); // 按照空格进行字符串的拆分
                for(int i=0;i<s.length;i++){
                    System.out.println(s[i]);
                }
            }
        }
        
          8
        • 9

        在这里插入图片描述
        避免正则表达式的影响,可以进行转义操作

        public class Test{
            public static void main(String[] args) {
                String str1 = "192.168.1.1"; // 定义字符串
                // 此时需要对拆分的“.” 进行转义,Java转义需要使用“\\”
                // 此处的 "\\" 表示一个 "\"
                String s[] = str1.split("\\."); // 按照"."进行字符串的拆分
                for(int i=0;i<s.length;i++){
                    System.out.println(s[i]);
                }
            }
        }
        
          8
        • 9
        • 10
        • 11

        (9)字符串的大小写转换

        toUpperCase():大写转换
        toLowerCase():小写转换
        
        • 1
        • 2
        public class Test{
            public static void main(String[] args) {
                String str = "hello";
                System.out.println(str.toUpperCase());
                System.out.println(str.toLowerCase());
            }
        }
        

          在这里插入图片描述

          (10)判断是否以指定的字符串开头或结尾

          在 String 中使用startsWith()方法可以判断字符串是否以指定的内容开头,使用endsWith()方法可以判断字符串是否以指定的内容结尾。

          public class Test{
              public static void main(String[] args) {
                  String str = "**hello**";
                  if(str.startsWith("**")){
                      System.out.println("判断开头是否是 ** ");
                  }
                  if(str.endsWith("**")){
                      System.out.println("判断结尾是否是 ** ");
                  }
                  System.out.println(str.startsWith("**"));
              }
          }
          
            8
          • 9
          • 10
          • 11
          • 12

          在这里插入图片描述

          (11)不区分大小写进行字符串比较

          在 String 中可以通过 equals() 方法进行字符串内容的比较,但是这种方法是区分大小写的比较,如果要完成不区分大小写的比较可以使用 equalsIgnoreCase() 方法。

          public class Test{
              public static void main(String[] args) {
                  String str = "hello";
                  String STR = "HELLO";
                  System.out.println(str.equals(STR));
                  System.out.println(str.equalsIgnoreCase(STR));
              }
          }
          
            8

          在这里插入图片描述

          (12)将一个指定的字符串,替换成其他的字符串

          使用 String 的 replaceAll() 方法,可以将字符串的指定内容进行替换。

          public class Test{
              public static void main(String[] args) {
                  String str = "hello";
                  String newstr = str.replaceAll("l","x"); // 将字符串中所有的 l 替换成 x
                  System.out.println(newstr);
              }
          }
          

            在这里插入图片描述

            相关技术文章

            点击QQ咨询
            开通会员
            返回顶部
            ×
            微信扫码支付
            微信扫码支付
            确定支付下载
            请使用微信描二维码支付
            ×

            提示信息

            ×

            选择支付方式

            • 微信支付
            • 支付宝付款
            确定支付下载