Filecoin 电力杆 pandas canal安装 resultMap multithreading express url recursion encryption 网络营销推广 count gdb vue状态管理 oracle自增长 matlab向量的模 edate函数的使用方法 maya曲线建模 bootstrap居中对齐 excel带格式复制粘贴 mysql连接 python输出中文 python随机整数 java重写和重载的区别 java的基本类型 java创建集合 java获取url参数 java网络编程 枪神传说辅助 无限弹窗bat 海妖花粉哪里多 编辑软件 页面刷新 摩尔斯电码翻译器在线 流水账软件 dxsetup 小程序开发工具下载 联想小新键盘灯怎么开 发射爱心的图片 hzfs
当前位置: 首页 > 学习教程  > java

更高效地刷OJ——String常用方法(三)

2021/2/23 11:03:04 文章标签:

续 更高效地刷OJ——String常用方法(一) 更高效地刷OJ——String常用方法(二) contains() :这个方法用于查询传入的子串是否存在于字符串中,这个方法返回值是Boolean类型。 通过代码理解: p…


更高效地刷OJ——String常用方法(一)

更高效地刷OJ——String常用方法(二)

  1. contains() :这个方法用于查询传入的子串是否存在于字符串中,这个方法返回值是Boolean类型。

通过代码理解:

public static void main(String[] args) {
        String str = "Hello World";

        //查询"o w"这个子串是否存在于字符串内
        System.out.println(str.contains("o W"));
        //查询"o w"这个子串是否存在于字符串内
        System.out.println(str.contains("o w"));
    }

运行结果:
在这里插入图片描述


10.startsWith() : 查看字符串是否是以传入的参数为起始,返回值是boolea。这个方法有两个重载:
在这里插入图片描述
第一种:从字符串 0 位置开始查看字符串是否是以传入的参数为起始;
第二种:从传入的第二个参数的位置为起始点,查看字符串是否是以传入的参数为起始。

需要注意的是这个方法是区别大小写的。
通过代码理解:

public static void main(String[] args) {
        String str = "Hello World";

        System.out.println("查看字符串是否以\"hel\"子串为始 :" + str.startsWith("hel"));
        //区分大小写
        System.out.println("查看字符串是否以\"Hel\"子串为始 :" + str.startsWith("Hel"));

        //从 0 位置查是否以"Wor"子串为始
        System.out.println("从 0 位置查是否以\"Wor\"子串为始 :" + str.startsWith("Wor"));
        //从 6 位置查是否以"Wor"子串为始
        System.out.println("从 6 位置查是否以\"Wor\"子串为始 :" + str.startsWith("Wor", 6));

    }

运行结果:
在这里插入图片描述

  1. endsWith() :于startsWith() 相对应,endsWith() 是检测字符串是否是以传入的参数为结束,返回值是boolea。
    但是于startsWith() 不同的是因为endsWith() 是检测结尾的,所以他只有一种重载形式,不需要传入第二个起始位置参数,如下:
    在这里插入图片描述

12. equals() :用来比较两个String 对象内的字符串是否相等,区分字符串中字符的大小写;
equalsIgnoreCase() :用来比较两个String 对象内的字符串是否相等,不区分字符串中字符的大小写;

注意: 于 " == " 用于比较两个(任何类型)引用 是否指向同一个对象, equals() / equalsIgnoreCase() 是比较 两个引用指向的对象内的内容是否相同

通过代码理解:

public static void main(String[] args) {
        String str1 = "Hello World";
        String str2 = "Hello World";
        String str3 = "hello world";

        System.out.println(str1.equals(str2));
        //equals() 区分大小写的比较
        System.out.println(str1.equals(str3));

        //equalsIgnoreCase() 不区分大小写的比较
        System.out.println(str1.equalsIgnoreCase(str3));
    }

运行结果:
在这里插入图片描述


13.compareTo() : 比较两个字符串,返回一个int类型的数
铺垫(字母怎么比较):按照字母在Unicode码表中先后顺序比较,如 B > A; C > B; a > A,这里需要注意的是 在 Unicode码表中,大写字母段 在前,小写字母段 在后,所以任何一个小写字母都要大于大写字母 (Z < a)。
比较规则:先从两个字符串的首字母开始比较,若相等则比较下一位,直到能比较出大小的时候,此时:
(1).若前者字符串首字母大于后者 返回 一个 大于0 的int类型数值,若前者字符串首字母 小于 后者字符串首字母 返回 一个小于0的int类型数值。
(2).对于两个长度相等的字符串,字母依次比较直至结束都相等的话 则说明这两个字符串相等,返回 0。
(3).对于两个长度不相等的字符串如 “day” 和 “days”,前段字母都相等,就是另一个字符串更长一些,则长的字符串大

compareToIgnoreCase() :这个方法和 compareTo() 的区别为 compareToIgnoreCase() 忽视了两个字符串中大小写的区别。

通过代码理解:

public static void main(String[] args) {
        String str1 = "Hello World";
        String str2 = "Thanks";
        String str3 = "hello WORLD";
        String str5 = "HEllo World";
        String str6 = "Hello Worlds";

        //因为 "H" 在Unicode编码表中在 "h" 之前,所以"Hello World" 小于 "hello World" 所以返回负数
        System.out.println( "\"Hello World\" 和 \"hello WORLD\"比较结果 :" + str1.compareTo(str3));
        //因为首字母'H'相等,比较第二个字母,'e' > 'E' 所以返回大于0 的数
        System.out.println("\"Hello World\" 和 \"HEllo World\"比较结果 :" + str1.compareTo(str5));
        //当字母都比较完了,则字符串长度较长的那个大, 因为 "Hello World" 比 "Hello Worlds"短,所以返回负数
        System.out.println("\"Hello World\" 和 \"Hello Worlds\"比较结果 :" + str1.compareTo(str6));
        //虽然"Thanks"更短,但是因为先比较字母大小'T'比'H'大所以 "Thanks"更大,返回负数
        System.out.println("\"Hello World\" 和 \"Thanks\"比较结果 :" + str1.compareTo(str2));

        //compareToIgnoreCase()忽视两个字符串中的大小写区别
        System.out.println("\"Hello World\" 和 \"hello WORLD\" 用 compareToIgnoreCase() 的比较结果 :"
                + str1.compareToIgnoreCase(str3));
    }

运行结果:
在这里插入图片描述


14.format() :这是一个静态方法, 这个方法用于返回一个按一定格式表达的字符串,格式的形式和printf 中所用的格式相同

通过代码理解:

 public static void main(String[] args) {
        String s = String.format("大家好,我叫 %s, 今年 %d 岁。","有裂痕的石头",21);

        System.out.println(s);
    }

运行结果:
在这里插入图片描述

15.trim() : 裁减掉字符串两边的(字符串内部的不裁剪) 空字符串,\n , \t等
通过代码理解:

public static void main(String[] args) {
        String s = "\t\tHello World    \n";

        //"|"用于显示\t \n的存在
        System.out.println('|' + s + '|');

        String s1 = s.trim();
        //用了trim()方法后对字符串两边\t \n做了删减
        System.out.println('|' + s1 + '|');
    }

运行结果:
在这里插入图片描述

16.valueOf() :这个方法也是一个静态方法,用于把其它类型变量转为String类型,它有以下几种重载:
在这里插入图片描述

以下几个方法稍作了解就行:

假设有两个Sting类型 s和t

1.concat() : s.concat( t ); 等价于 s + t;
2.isEmpty() :s.isEmpty() == true 等价于 s.length()==0;

以上就是String类型常用方法,有时候在刷OJ题时直接使用这些方法,能以更快的速度实现题目要求

如果总结的有错误,希望各位看官能在评论区提出,谢谢。


本文链接: http://www.dtmao.cc/news_show_2036702.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?