Java基础中String

           

一、String类适用于描述字符串事物, 那么它提供了多个方法对字符串进行操作
  
  常见操作:
  
 1、获取
    1.1字符串中包含的字符数,也就是字符串的长度
       int length():获取长度
    1.2根据位置获取位置上某个字符
     char  charAt(int index)
     1.3根据字符获取该字符在字符串中位置
       int indexOf(int ch);返回的是ch在字符串中第一次出现的位置
     int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取在字符串中出现的位置
       
       int indexOf(String str);返回的是ch在字符串中第一次出现的位置
       int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取在字符串中出现的位置
  2、判断
      2.1字符串中是否包含某一个子串
      boolean contains(str);
        特殊之处:indexOf()可以索引str第一次出现位置,如果返回-1;表示str不在字符串中
        所以,也可以用于对指定判断是否包含
        if(str.indexOf("aa")!=-1)
        而且该方法既可以判断,也可以获取位置
      2.2字符中是否有内容
      boolean isEmpty(str);
      2.3字符串是是否以指定内容开头
      boolean startsWith(str);
      2.4字符串是否以指定内容结束
      boolean startsWith(str);
      2.5判断字符串内容是否相同。复写了Object类中equals方法
      boolean eaquls(str);
      2.6判断内容是否相同,并忽略大小写
      Boolean equalsIgnoreCase();
  3、转换
     3.1将字符数据转成字符串
        构造函数:String(char[])
              String(char[],offset,count):将字符数组一部分转化字符串
                               静态方法:static String copyValueOf(char[]);
               static String copyValueOf(char[] data,int offset,int count);
               static String ValueOf(char[]);                
        
     3.2将字符串转成字符数据
          char[] toCharArray();
     3.3将字节数组转成字符串
           String(byte[])
           String(byte[],offset,count):将字节数组一部分转化字符串
     3.4将字符串转成字节数组 
        byte[] getBytes();
     3.5将基本数据类型转成字符串
       static String ValueOf(int); 
       static String ValueOf(double);
       
        3+"";//String.ValueOf(3);
        
                    特殊:字符串和字节数组转化过程是可以指定编码表
  
      4、替换
       Stirng replace(oldchar,newchar);
      5,切割
        String[] split(regex);
      6、子串  获取字符串中的一部分
        String substring(begin);
        String substring(begin,end);
      7、转换,去空格 比较
         7.1将字符串转成大写或小写
          String toUpperCase();
           String toLowerCase();
         7.2将字符串两端的多个空格去除
            String trim();
         7.3对两个字符串进行自然书讯的比较
          int  compareTo(string);

代码实现:
public class StringMethodDemo {
public static void method_7()
{
String s=" hellow java ";
sop(s.toUpperCase());
sop(s.trim());
String s1="aca";
String s2="aca";
 
sop(s1.compareTo(s2));

}

public static void method_sub()
{
String s="abcdef";
sop(s.substring(2));//从指定位置到结尾,如果不存在,出现角标越界
sop(s.substring(2,4));//包含头,不包含尾
}

public static void method_split()
{
String s="zhangsan,lisi,wangwu";
String[] arr=s.split(",");
for(int x=0;x<arr.length;x++)
{
sop(arr[x]);
}
}


    public static void method_is()
    {
    String str="ArrayDemo.java";
    //判断文件名称是否是Array单词开头
    sop(str.startsWith("Array"));
    //判断文件名称是否是.java文件
    sop(str.startsWith(".java"));
    //判断文件名称是否是以。java结束
    sop(str.startsWith(".java"));
   
    }


public static void Method_get()
     {
    String str="abcadefga";
    sop(str.length());//长度
    sop(str.charAt(4));//根据索引获取字符
    sop(str.indexOf('m'));//根据字符获取索引
    sop(str.lastIndexOf('a'));//反向查找
     
     }
public static void method_trans()
{
char[] arr={'a','b','s','s','e','f','f'};
String s=new String(arr,1,3);
sop("s="+s);
}
public static void method_replace()
{
String s="hello java";
String s1=s.replace('a','n');//如果替换不存在,返回原串

sop("s="+s);
sop("s1="+s1);
}


public static void main(String[] args) {
method_7();
//method_replace();
//Method_get();
//method_is();
}
public static void sop(Object obj)
{
System.out.println(obj);
 
}


}

二、StringBuffer是字符串缓冲区
  是一个容器
  特点:
  1、长度可变化,
  2、可以操作多个数据类型
  3、最终会通过toString方法变成字符串
  CURD
  1、存储
    StringBuffer apend();将定数据作为参数添加到已有数据的末尾
    StringBuffer insert(index,数据):可以将数据插入到指定index位置
  2、删除
    StringBuffer delete(start,end):删除缓冲区中数据,包含头不包含尾
    StringBuffer deleteCharAt(index):删除指定位置字符串
  3、获取
    char charAt(int index);
    int indexOf(String str);
    int lastindexOf(String str);
    int length();
    String subString(int start,int end); 
  4、修改
  StringBuffer replace(int start, int end, String str)  
   void setCharAt(int index, char ch) 
   5、反转
   StringBuffer reverse();
  6、将缓冲区中指定数据存储到指定字符串中
  void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)  
  
  JDk1.5版本之后出现了Stringbuilder
  StringBuffer 是线程同步
  StringBuilder  是线程不同步
  
   升级三个因素
   1、提高效率
   2、简化书写
   3、提高安全性
代码实现:
public class StringBufferDemo {


public static void main(String[] args) {

//method_update();
  StringBuffer sb=new StringBuffer("abcde");
  
  char[] chs=new char[6];
  sb.getChars(2, 5, chs, 1);
  for(int x=0;x<chs.length;x++)
  {
  sop("chs["+x+"]="+chs[x]+";");
  }
  


}
public static void method_update()
{
StringBuffer sb=new StringBuffer("abcde");
        sb.replace(1,4,"java");
       sb.setCharAt(2, 'k');

sop(sb.toString());
}

public static void method_delete()
{
StringBuffer sb=new StringBuffer("asdfghjkl");
sb.delete(1,1);
//清空缓冲区
//sb.delete(0,sb.length());
sb.deleteCharAt(3);
sop(sb);
}

public static void method_add()
{
StringBuffer sb=new StringBuffer();
sb.append(34).append(true).append("b");
sb.insert(1, "ass");

sop(sb);
}
public static void sop(Object str) {
System.out.println(str);

}
}

三、总结

   通过上面内容学习,学习了字符串String一些属性和方法,可以对字符串进行获取、判断、转换、替换、切割、

子串,去空,比较等操作,在以后运用中有很大帮助。字符串缓冲区是对字符串的扩充,主要功能可以对字符串进行存储、删除、获取、反转、修改等操作,相对于String有很多优点。

猜你喜欢

转载自blog.csdn.net/u011638706/article/details/40922793