前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java——String相关的方法汇总

java——String相关的方法汇总

作者头像
小雨的分享社区
发布2022-10-26 14:47:24
4520
发布2022-10-26 14:47:24
举报
文章被收录于专栏:小雨的CSDN

创建字符串

常用的创建放到hi

// 方式一 String str = “Hello”; // 方式二 String str2 = new String(“Hello”); // 方式三 char[] array = {‘a’, ‘b’, ‘c’}; String str3 = new String(array);

intern()

在实际开发中,String创建一个对象,可以以下的格式

String str = new String(“Hello”);

但这种格式需要再重新开辟一个空间,如果想节省空间,可以使用到intern()方法

代码语言:javascript
复制
  public static void main1(String[] args) {
        String str1 = "Hello";//最主要的方式
        String str = new String("Hello").intern();
        System.out.println(str.equals(str1));
    }

通过intern()方法可以重复利用池中的对象,不需要重新申请一个空间,再次执行intern()方法,此时就会再池中查找内容相同的字符常量,如果在池中没有找到,就把当前字符串加到池中,如果已经找到了就返回这个池中的对象,节省了空间(但实际开发中很少遇到)

equal()

想要怕段两个字符串是否相等,用==是有它的风险的,就例如:

代码语言:javascript
复制
String str1 = "Hello";
String str2 = "Hello";
System.out.println(str1 == str2);


// 执行结果
true

以上创建字符串的方式似乎对运行结果没有产生什么影响,但是如果深究其内涵,了解到str1和str2所指向的对象相同(类似于C语言的指针),指向同一个对象,判断相等当然会返回true。

代码语言:javascript
复制
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1 == str2);


// 执行结果
false

但是用这种创建方式,可以看到结果并不符合预期,是因为两个新创建的对象指向不同的内存

因此,如果相比较两个字符串是否相等,需要用到equal()方法。

代码语言:javascript
复制
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1.equals(str2));
System.out.println("Hello".equals(str1));
// System.out.println(str2.equals(str1)); // 或者这样写也行

// 执行结果
true
true

substring()

如果想要修改字符串,需要用到这个方法。例如, 现有字符串 str = “Hello” , 想改成 str = “hello”

代码语言:javascript
复制
String str = "Hello";
str = "h" + str.substring(1);
System.out.println(str);

// 执行结果
hello

字符串与字符数组的相互转换

1.字符串->字符数组
代码语言:javascript
复制
 //字符串=》字符数组
        String str = "hehe";
        //toCharArray()是把string中包含的字符数组拷贝过来
        char[] data = str.toCharArray();
1.字符数组->字符串
代码语言:javascript
复制
  //字符数组=》字符串
        //借助String的构造方法即可
        char[] array = {'z','v','v'};
        String str2 = new String(array);
        System.out.println(str);

字符串与字节数组的相互转换

1.字符串->字节数组
代码语言:javascript
复制
 //字符串转字节数组
        String str = "hello";
        byte[] array = str.getBytes();;
1.字节数组->字符串
代码语言:javascript
复制
//字节数组转字符串
        String str2 = new String(array);
        System.out.println(str2);

比较字符串大小

使用 comperaTo可以比较字符串大小

compareTo 返回值 >0时,认为str1比str2大 compareTo 返回值 <0时,认为str1比str2小 compareTo 返回值 ==0时,认为str1与str2相等(内容)

代码语言:javascript
复制
  public static void main6(String[] args) {
        //比较字符串大小
        String str1 = "hehe";
        String str2 = "haha";
        System.out.println(str1.compareTo(str2));  
    }

忽略大小写的比较方法:

代码语言:javascript
复制
 //忽略大小写
        String str1 = "hehe";
        String str2 = "Haha";

        System.out.println(str1.equalsIgnoreCase(str2));//忽略大小写比较

判断字符串的子串

代码语言:javascript
复制
public static void main(String[] args) {
        //判定字符串字串
        String str1 = "hello world";
        String str2 = "wor";
        System.out.println(str1.contains(str2));

        //不光能判断是否为字串,还能确定字串所处的位置
        System.out.println(str1.indexOf(str2));
        //返回-1表示str1不包含str2
        //返回结果是str2再str1中第一次出现的下标
    }

split()字符串拆分

代码语言:javascript
复制
 public static void main(String[] args) {
        String str = "I Live In The Home";
        String[] ret = str.split(" ");
        for (String x : ret){
            System.out.println(x);
        }
        System.out.println("原来的字符串为:" + str);
        //System.out.println(Arrays.toString(ret));
    }

输出结果为:

从这里可以看到,本代码是用空格拆分字符串,但是最开始的字符串不会因为字符串的分割而改变(String定义的字符串不会被修改)

注意: 这里要引出一个概念:正则表达式

代码语言:javascript
复制
   public static void main(String[] args) {
        String str = "192.43.67";
        //想按照“.”来切分
        String[] result = str.split(".");
        for (String x : result){
            System.out.println(x);
        }
    }

以上代码没有执行结果,也就是说split方法在str里面没有找到"."这个字符,我们知道,“.”在正则表达式中是一个特殊字符 ,需要进行转义才能识别出来。如下:

代码语言:javascript
复制
   String str = "192.43.67";
        //想按照“.”来切分
       //.在正则表达式中是一种特殊符号,为了让split识别出源字符串中的“.”,就需要进行转意义“\\.”
        String[] result1 = str.split("\\.");
        for (String x : result){
            System.out.println(x);
        }

“\.” 里面有两个反斜杠,代表的两个转义, 一个是在java中进行转义,一个是在正则中表示转义

与之用法相同的符号有:“| + * ”

实际应用

代码语言:javascript
复制
 public static void main(String[] args) {
        //split的实际应用
        String string = "name=zhangsan&age=14&sex=male";
        //1.先按照&进行拆分
        String[] result = string.split("&");
        for (String tmp : result){
            //现在已经按照&拆分好了,开始进行=的拆分
            String[] ret = tmp.split("=");
            if (ret.length != 2){
                continue;
            }
            System.out.println(ret[0] + ": " + ret[1]);
        }
    }

trim()

代码语言:javascript
复制
 public static void main(String[] args) {
        String str = "    hello world     ";
        System.out.println(str.trim());//可以去掉前后两端的空白符
    }

运行结果为:

substring()

从一个完整的字符串之中截取出部分内容。可用方法如下:

代码语言:javascript
复制
String str = "helloworld" ;
System.out.println(str.substring(5));
System.out.println(str.substring(0, 5));

注意事项:

  1. 索引从0开始
  2. 注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标

toUpperCase() 与 toLowerCase()

代码语言:javascript
复制
String str = "helloworld" ;
System.out.println(str.toUpperCase());//让str里面的字符全部大写
System.out.println(str.toLowerCase());//让str里面的字符全部小写

如果先在想实现一个手写字母大写,其他字母小写。 那么可以有:

代码语言:javascript
复制
String result = str.substring(0,1).toUpperCase()+ str.substring(1).toLowerCase();
System.out.println(return);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建字符串
  • intern()
  • equal()
  • substring()
  • 字符串与字符数组的相互转换
    • 1.字符串->字符数组
      • 1.字符数组->字符串
      • 字符串与字节数组的相互转换
        • 1.字符串->字节数组
          • 1.字节数组->字符串
          • 比较字符串大小
          • 判断字符串的子串
          • split()字符串拆分
          • 实际应用
          • trim()
          • substring()
          • toUpperCase() 与 toLowerCase()
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档