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)

  • 相关阅读:
    实例化对象
    面向对象
    合并类动态规划——石子合并(洛谷1880)
    合并类动态规划——能量项链(洛谷1063)
    multiplicationoverview
    cadence 工艺库各文件夹所包含的内容
    C语言读入文件的函数列举
    一篇工程师的感悟(转载)
    验证汇总一些缩写代码含义
    Verilog代码覆盖率检查
  • 原文地址:https://www.cnblogs.com/jiangxiaobin1996/p/10343534.html
Copyright © 2011-2022 走看看