一、String类

  Java中用String类对字符串进行了对象的封装,这样的好处在于对象封装后可以定义N多属性和行为,就可以对字符串这种常见的数据进行方便的操作。

  格式:(1)String s1 = "abc";      //s1指向的内存中只有一个对象"abc",在字符串常量池中创建abc字符串,并把地址赋给s1引用型变量

       (2)String s2 = new String("abc"); //s2指向的内容中有两个对象abc、new,在堆内存中通过new创建String对象,此对象在构造时接受了字符串"abc"对象。

      注意: System.out.println(s1==s2);     //输出false,这里的==比较的是地址值

            System.out.println(s1.equals(s2));  //比较的事字符串的内容是否相同。输出true,String类中定义的equals方法复写了Object中的equals方法,建立了String类自己通过比较字符串内容判断字符串对象是否相同的依据。(Object中的equals方法比较的是两个对象的地址值是否相同)

  特点:字符串一旦被初始化,就不可以改变,存放在方法区中的常量池中

  常用的方法

    1、构造方法:将将字节数组或者字符数组转换成字符串

      String s1 = new String();//创建了一个空内容的字符串

      String s2 = null;//s2没有任何对象指向,是一个null常量

      String s3 = "";//s3指向一个具体的字符串对象,只不过这个字符串中没有内容。

      String s4 = new String("abc");

      String s5 = "abc";//一般在定义字符串的时候,用此方法,不用new,

    2、一般方法:

      按照面向对象的思想分类

      2.1、获取

        2.1.1、获取字符串的长度。int length()

        2.1.2、获取指定位置的字符。char charAt(int index)

        2.1.3、获取指定字符的位置。如果不存在就返回-1,所以可以通过返回值-1来判断每一个字符不存在的情况

          int indexOf(int ch);//返回指定字符在字符串内第一次出现的角标

          int indexOf(int ch, int fromIndex);//返回从指定位置开除第一次出现指定字符的角标

          int indexOf(String str);//返回第一次找到字符串的角标

          int indexOf(String str, fromIndex);//

          

          

          int lastIndexOf(int ch);//

          int lastIndexOf(int ch, int fromIndex)

          int lastIndexOf(String str);

          int lastIndexOf(String str, fromIndex)

        2.1.4、获取字串

          String substring(int start);//获取从start开始到length()-1为止的字符串

          String substring(int start, int end);//获取从start开始到end()-1为止的字符串,包含头不包含尾

          应用:String substring(0, str.length);//获取整串字符串

    2.2、判断

      2.2.1、判断字符串中是否包含指定字符串:boolean contains(String substring);//1.5版本开始有此方法,也可以用indexOf()

      2.2.2、判断字符串是否以指定字符串开头:boolean startWith(String str)

      2.2.3、判断字符串是否以指定字符串结尾:boolean endWith(String str)

      2.2.4、判断字符串是否相同:boolean equals(String str);//覆盖了Object中的方法,判断字符串的内容是否相同,

      2.2.5、判断字符串内容是否相同(忽略大小写):boolean equalsIgnoreCase(String str)

    2.3、转换

      2.3.1、通过构造函数可以将字符数组或者字节数组转成字符串

      2.3.2、可以通过字符串中的静态方法,将字符数组转成字符串

        static String copyValueOf(char[] char)

        static String copyValueOf(char[] char, int offset, int count)

        static String valueOf(char[] char)

        static String valueOf(char[] char, int offset, int count)

      2.3.3、将基本数据类型或者对象转成字符串

        static String valueOf(char c)

        static String valueOf(boolean b)

        static String valueOf(double d)

        static String valueOf(float f)

        static String valueOf(int i)

        static String valueOf(long l)

        static String valueOf(Object obj)

      2.3.4、将字符串转换大小写

        String toLowerCase()

        String toUpperCase()

      2.3.5、将字符串转成数组

        char[] toCharArray()

        byte[] to Bytes()

      2.3.6、将字符串转成字符串数组,切割方法

        String[] split(String regex)

      2.3.7、将字符串进行内容替换

        String replace(char oldChar,char newChar);//若在原字符串中没有找到oldChar,则返回原字符串

        String replace(String oldString, String newString)

      2.3.8、String concat(String str);//对字符串进行追加。与"ab" + "cd"相同

        String trim();//去除字符串两端的空格

        int compareTo(String anotherString);//如果参数字符串等于此字符串,则返回0,如果此字符串按字典顺序小于参数字符串,则返回一个小于0的值,如果此字符串按字典顺序大于参数字符串,则返回一个大于0的值

二、StringBuffer字符串缓冲区

  用于存储数据的容器,构造一个不带字符的字符串缓冲区,初始容量为16个字符

  特点:1、可以对字符串内容进行修改

     2、是一个容器

     3、是可变长度的

     4、缓冲区中可以存储任意类型的数据

     5、最终需要变成字符串

  StringBuffer类常用的方法

    1、添加

      StringBuffer append(data);//在缓冲区中追加数据,追加到尾部

      StringBuffer insert(int index, data);//在指定位置插入数据

    2、删除

      StringBuffer delete(int start, int end);//删除从start到end-1范围的元素(包含头,不包含尾)

      StringBuffer deleteCharAt(int index);//删除指定位置的元素

        应用:sb.delete(0,sb.length());//清空缓冲区

    3、修改

      StringBuffer replace(int start, int end, String  str);//将start到end-1的元素替换成str

      void setCharAt(int index, char c);//替换指定位置的字符,注意该方法不返回任何值

      void setLength(int len);//将原字符串设置为指定长度的字符串

    4、查找(查不到返回-1)

      int indexOf(String str);//返回指定子字符串在此字符串中第一次出现处的索引

      int indexOf(String str. int fromIndex);//从指定位置开始查找字符串

      int lastIndexOf(String str);//返回指子定字符串在此字符串中能够最右边出现处的索引

      int indexOf(String str. int fromIndex);//从指定的索引开始反向搜索

    5、获取字串

      String subString(int start);//返回start到结尾的字串

      String subString(int start, int end);//返回start到end-1的字串

    6、反转

      StringBuffer reverse();//字符串反转

三、StringBuilder字符串缓冲区

  从JDK1.5出现StringBuilder,构造一个不带字符的字符串缓冲区,初始容量为16个字符,是StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。

  StringBuilder的方法和StringBuffer一样,区别在于

    StringBuilder通常用于单线程,线程不同步,线程不安全

    StringBuffer通常用于多线程,线程同步,安全

JavaSE基础知识---常用对象API之String类的更多相关文章

  1. C#基础知识学习(2)string类中的方法

    1.Compare 比较字符串 用来比较2个字符串的长度大小和值是否相同,相同则返回0,当x比y小返回-1,否则返回1,如果长度相同,且值不同,则返回1,代码如下 public static void ...

  2. 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)

    7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ...

  3. Js基础之常用对象

    今天来总结一下js中的常用对象: 1.string对象 常用方法: charAt():返回在指定位置的字符. charCodeAt():返回在指定的位置的字符的 Unicode 编码. concat( ...

  4. Java基础系列2:深入理解String类

    Java基础系列2:深入理解String类 String是Java中最为常用的数据类型之一,也是面试中比较常被问到的基础知识点,本篇就聊聊Java中的String.主要包括如下的五个内容: Strin ...

  5. 算法竞赛中的常用JAVA API :大数类(转载)

    5.算法竞赛中的常用JAVA API :大数类 摘要 java中的基础数据类型能存储的最大的二进制数是 2 ^ 63 - 1 对应的十进制数是9223372036854775807(long类型的最大 ...

  6. ASP.NET Core 基础知识(三) Program.cs类

    ASP.NET Framework应用程序是严重依赖于IIS的,System.Web 中有很多方法都是直接调用的 IIS API,并且它还是驻留在IIS进程中的.而 ASP.NET Core 的运行则 ...

  7. [005] - JavaSE面试题(五):String类

    第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [005] - JavaSE面试题(五):String类 第1问:String.StringBuf ...

  8. 6.算法竞赛中的常用JAVA API :Math类(转载)

    6.算法竞赛中的常用JAVA API :Math类 求最值 最小值 Math.min(int a, int b) Math.min(float a, float b) Math.min(double ...

  9. JavaSE基础知识(7)—常用类

    一.包装类 1.理解 java为八大基本数据类型一一对应提供了引用类型,方便使用里面的属性和方法 2.包装类型 byte——>Byteshort——>Shortint——>Integ ...

随机推荐

  1. Leetcode733.Flood Fill图像渲染

    有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间. 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newCol ...

  2. 易位构词EOJ3451【字符串】【思维题】【模拟】

    http://acm.ecnu.edu.cn/problem/3451/ 官方题解: 我们可以先考虑字符串有序的情况,比如是 aaabcc,我们只要将字符串右移 3 位,变成 bccaaa,就做完了. ...

  3. 找顺数【数位dp】

    输出1到n中含有6的数的个数. 样例输入 100 样例输出 19 找规律感觉好难想(好像是什么100以内有19个,200以内有19*2个,600以内115个,700以内214个...,1000以内有2 ...

  4. 字体图标font-awesome

    其实有一些常见的图标使用字体图标比使用img来得好 Font Awesome 官网:http://fortawesome.github.io/Font-Awesome/ 字体代码:http://for ...

  5. HZOJ 简单的期望

    性质:一个数分解质因数后2的次数=二进制下末尾连续0的个数. 乘2比较好考虑,比较恶心的是+1.一个$k*2^0$的数+1后可能会出现很多情况.但是k这个数表示不出来. 但是加的操作最多有200次,也 ...

  6. 原生js实现复制文本到粘贴板

    项目中经常会遇到点击按钮复制订单号.订单id等内容到粘贴板中的需求.可是通常我们都是用Ctrl + c或右击复制的,别操心,js也是有复制命令的,那就是document.execCommand('co ...

  7. tp3 key json 分页

    //json 强制转换为array $arr[$key]['checkpro'] = json_decode($val['checkpro'],JSON_FORCE_ARRAY);    $arr[$ ...

  8. java 删除字符串左边空格和右边空格 trimLeft trimRight

    /** * 去右空格 * @param str * @return */ public String trimRight(String str) { if (str == null || str.eq ...

  9. 2018-11-26-WPF-通过-DrawingContext-DrawImage-绘制图片

    title author date CreateTime categories WPF 通过 DrawingContext DrawImage 绘制图片 lindexi 2018-11-26 16:1 ...

  10. shell 并发执行任务

    #!/bin/bash # ref: https://blog.csdn.net/spch2008/article/details/51433353 token(){ pid=$ # 判断是否有传入p ...