黑马程序员_字符串

------- android培训 java培训 、期待与您交流! ----------

 

1.1 字符串

    概念:字符串是一个特殊的对象,字符串一旦初始化就不可以被改变。

    格式:String s1=new String(“abc”);或String s2=“abc”;区别是第一种有两个对象,第二种只有一个对象。

System.out.println(s1==s2);和System.out.println(s1.eauals(s2));的结果不同的原因:

          String类复写了object类中的equals方法,该方法用于判断字符串是否相同。

    String类是使用于描述字符串事物。那么它就提供了多个方法对字符串进行操作

      字符串常见的操作有获取,判断,转换,替换,切割,去掉空格,比较

1.2常见的操作-------------获取

    1.2.1字符串中的包含的字符数,即字符串的长度

           int length();获取字符串长度。

    1.2.2根据位置获取在字符串中位置上的某个字符

           Char charAt(int index);

    1.2.3根据字符获取在字符串中的位置

           int indexof(int ch):从头开始查找第一次出现的位置

           int indexof(int ch,int fromindex):从指定位置开始查找第一次出现的位置

        扩展1:根据字符串获取在字符串中处于的位置

              int indexof(String ch):从头开始查找第一次出现的位置

              int indexof(String ch,int fromindex):从指定位置开始查找第一次出现的位置

        扩展2:根据字符或字符串获取在字符串中最后出现的位置

              int lastindexof(int ch)

              int lastindexof(int ch,int fromindex)

              int lastindexof(String ch)

              int lastindexof(String ch,int fromindex)

    1.2.4子串:获取字符串中的一部分

       String substring(int beginIndex);参数是开始位置

       String substring(int beginIndex,int endIndex);注:包头,不包尾。所以substring(0,str.length);

1.3常见的操作-------------判断

   1.3.1字符串中是否包含某个字符串

         boolean contains(CharSequence s):或int indexof(str)也可以用于指定判断是否包含

   1.3.2字符串中是否包含内容

         boolean isEmpty():是否为空.如果为空,返回true,否则返回false。

   1.3.3字符串是否以指定内容开头

         boolean startsWith(String prefix):

    1.3.4字符串是否以指定内容结尾

         boolean endsWith(String suffix)   

    1.3.5字符串是否相同

        boolean equals(Str): 复写了object类中的equals方法。

    1.3.6字符串是否相同,忽略大小写

       boolean equalsIgnoreCase(str); 

1.4常见的操作------------转换

    1.4.1将字符数组转换成字符串

       构造函数 String (char[] c)

                      String (char[] c,offset,count):将字符数组中的一部分转换成字符串,其中offset是起始位置,count是表示个数。

       静态方法:static String copyValueOf(char[] c);

                         static String copyValueof(char[] c,offset,count);

    1.4.2将字节数组转换成字符串

      构造函数 String (byte[] b)

                     String (byte[] b,offset,count)

    1.4.3将字符串转换成字符数组

                      char【】 toCharArray();

     1.4.4将字符串转换成字节数组

                      byte【】 getBytes();

     1.4.5将基本数据类型转换成字符串

                     static String valueOf(多种);
1.5常见的操作-----------替换

     1.5.1替换

            String replace(charSequence target,charSequence replacement)

            String replace(char oldchar,char newchar);

      注:如果要替换的字符串不存在,那么返回的还是原字符串

1.6常见的操作-----------切割

      String【】 split(regex);

1.7常见的操作-----------转换,去除空格,比较

   1.7.1将字符串转换成大写,小写

          String toUpperCase();

          String tolowerCase();

   1.7.2将字符串两端的多个空格

          String trim();

    1.7.3对两个字符串进行自然顺序比较

          int compareto(str);

字符串练习1:模拟一个trim方法,去除字符串两端的空格

public static String myTrim()

{

    String str="    sajsdfijs    ";

    int start=0,end=str.length()-1;

    while(start<=end&&str.charAt(start)==' ')

    {

      start++;

    }

    while(start<=end&&str.charAt(end)==' ')

    {

      end--;

     }

     System.out.println(str.substring(start,end+1));

}

练习二:将一个字符串反转,将字符串中指定部分进行反转。

思路:1.先将字符串转换成字符数组;

            2.然后进行数组反转;

            3.最后将反转后的字符数组转换成字符串

重要代码:

public static String reverseString(String str)

{

        char[] ch=str.toCharArray();

        reverse(ch);

        return new String(ch);

}

public static void reverse(char[] c)

{

       for(int start=0,end=c.length-1;start<=end;start++,end--)

       {

            char temp=c[start];

            c[start]=c[end];

            c[end]=temp;

       }

}

StringBuffer

StringBuffer可以对字符串的增添,是一个容器,长度是可变的。

StringBuffer很多方法与String相同。

方法:存储:append();将指定的数据作为参数添加到已有数据结尾处。

            插入:insert();将指定数据插入到指定位置。

           删除:StringBuffer  delete();删除指定头位置(包含头位置)到末位置(不包含末位置)之间的字符串。

                      StringBuffer  deleteCharAt();删除指定位置的字符。

          获取:char charAt();获取指定位置的字符。

           修改:replace();替代指定位置之间的字符串。包含头,不包含尾。

                      setCharAt();将指定位置的字符用指定字符替代,修改。

           反转:reverse();将字符串反转。

StringBuilder 是一个可变的字符序列。

此类提供一个与StringBuilder兼容的API,但不保证同步。

StringBuffer是线程安全的可变字符序列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值