zoukankan      html  css  js  c++  java
  • java String详解

    创建字符串:

    1. String(char a[])

    char a[] = {'g','o','o','d'};
    String str = new String(a);

    2. String(char a[],int offset,int length)

    char a[] = {'s','t','u','d','e','n','t'};
    String str = new String(a,2,4);

    3. 通过字符串常量的引用赋值给一个字符串变量:

    String str1,str2;
    str1 = "good";
    str2 = "good";

    str1和str2共用一个"good"内存空间。

    连接多个字符串

    String s1 = new String("hello");
    String s2 = new String("world");
    String string = s1 + " " + s2;
    System.out.println(string);

    换行输出:

    System.out.println("hello "
            + "world");    
    

      

    获取字符串信息

    获取字符串长度

    str.length();  

    字符串查找

    String类提供了两种查找字符串的方法,即indexOf()与lastIndexOf()方法。这两种方法都允许在字符串中搜索指定条件的字符或字符串。indexOf()方法返回的是搜索的字符或字符串首先出现的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出现的位置。

    str.indexOf(substr);
    //str:任意字符串对象
    //substr:要搜索的字符串

    获取指定索引位置的字符

    str.charAt(int index);

    字符串操作

    获取子字符串

    str.substring(int beginIndex); // 从某一索引处开始截取字符串
    str.substring(int beginIndex,int endIndex); // 从beginIndex开始到endIndex结束截取字符串

    去除空格

    str.trim();

    字符串替换

    str.replace(char oldChar,char newChar);

    判断字符串的开始与结尾

    startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。返回值都为Boolean类型。

    str.startsWith(String prefix);
    Str.endsWith(String suffix);

    判断字符串是否相等

    str.equal(String otherstr); // 区分大小写
    str.equalsIgnoreCase(String otherstr); // 不区分大小写

    按字典序比较两个字符串

    str.compareTo(String otherstr);

    大小写转换

    str.toLowerCase();
    str.toUpperCase();

    字符串分割

    str.split(String sign);
    str.split(String sign,int limit); // limit限制分割次数

    String,StringBuilder,StringBuffer

    Java中的String,StringBuilder,StringBuffer三者的区别

    1. 在运行速度上:StringBuilder > StringBuffer > String
    原因:String 为字符串常量,而StringBuilder和StringBuffer是字符串变量,即String对象创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。例如:

    String str = "abc";
    System.out.println(str);
    Str = str + "de";
    System.out.println(str);

    在第三行中,str好像是被修改了,其实不然,JVM在第三行又创建了一个新的对象也命名为str,然后把原来对象的str的值和"de"加起来赋给新的str,而原来的str就会被JVM垃圾回收机制给回收掉,所以这里的str实际上并没有被更改。

    2. 在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的
    如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized关键词,所以可以保证线程的安全,但是StringBuilder的方法则没有该关键词,所以不能保证线程安全。所以如果使用多线程则使用StringBuffer,但在单线程中建议使用StringBuilder速度更快些。

    StringBuilder的常用方法:
    1. 创建一个StringBuilder对象: 

    StringBuilder str = new StringBuilder(); 
    StringBuilder str = new StringBuilder(string); 

    2. append:字符串的连接 

    str.append("aaa");
    

    3. toString:

    str.toString();
    

    4. setCharAt(int I, char c):第i位置替换成c

    str.setCharAt(int i,char c);

    5. Insert(int I, string str):在指定位置插入字符或字符串

    str.insert(int I, string str);

    6. delete(int start, int end):删除起始位置(含)到结束位置(不含)之间的字符串

    str.delete(int start, int end);

    7. Replace(int start, int end, string str):从start到end用str代替

    str.replace(int start, int end, string str);

    StringBuffer的常用方法:
    • 添加功能 
      public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
      public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
    • 删除功能 
      public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身
      public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身
    • 替换功能 
      public StringBuffer replace(int start,int end,String str):从start开始到end用str替换
    • 反转功能 
      public StringBuffer reverse()
    • 截取功能 
      public String substring(int start)
      public String substring(int start,int end)

  • 相关阅读:
    Python 爬虫js加密破解(一) 爬取今日头条as cp 算法 解密
    Python 爬虫实例(2)—— 爬取今日头条
    Python 爬虫实例(1)—— 爬取百度图片
    python 操作redis之——HyperLogLog (八)
    python 操作redis之——有序集合(sorted set) (七)
    Python操作redis系列之 列表(list) (五)
    Python操作redis系列以 哈希(Hash)命令详解(四)
    Python操作redis字符串(String)详解 (三)
    How to Install MySQL on CentOS 7
    Linux SSH远程文件/目录 传输
  • 原文地址:https://www.cnblogs.com/jiangxiaobin1996/p/10343534.html
Copyright © 2011-2022 走看看