zoukankan      html  css  js  c++  java
  • java常用类--字符串

    • String

    import java.io.IOException;
    import java.util.Arrays;
    
    public class Linkin 
    {
        public static void main(String[] args) throws IOException 
        {
            String str = "LinkinPark...";
            //找到某一处char值
            System.out.println(str.charAt(0));
            //测试某一个字符串是否和当前字符串相同
            System.out.println("Linkin".equals(str));
            //判断该字符串的前缀和后缀
            System.out.println(str.startsWith("Lin"));
            System.out.println(str.endsWith("..."));
            //判断该字符串是否包含指定的内容
            System.out.println(str.contains("kin"));
            //将指定字符串连接到此字符串的结尾   一般不怎么用 直接用+号连接就好了
            System.out.println(str.concat("binger"));
            System.out.println(str+"binger");
            //使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
            byte[] bytes = str.getBytes();
            for (byte b : bytes) {
                System.out.println(b);
            }
            //返回指定子字符串在此字符串中第一次出现处的索引
            System.out.println(str.indexOf("kin"));
            //返回指定字符在此字符串中最后一次出现处的索引
            System.out.println(str.lastIndexOf("P"));
            //当且仅当 length() 为 0 时返回 true。
            System.out.println(str.isEmpty());
            //返回此字符串的长度
            System.out.println(str.length());
            //返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
            System.out.println(str.replace("L", "B"));
            //根据给定正则表达式的匹配拆分此字符串,返回的是字符串数组
            System.out.println(Arrays.asList(str.split("i")));
            //返回字符串的副本,忽略前导空白和尾部空白
            System.out.println(str.trim());
            //返回一个新的字符串,它是此字符串的一个子字符串。 后面还可以跟一个参数,表示结尾
            System.out.println(str.substring(2));
            //返回 int 参数的字符串表示形式  一般不怎么用 直接用加号连接就好了
            System.out.println(String.valueOf(2));
            System.out.println(2+"");
        }
    
    }
    


    • 字符串与字符数组

    String 类的构造方法:String(char[]) 和 String(char[],int offset,int length) 分别用字符数组中的全部字符和部分字符创建字符串对象 
    String类提供了将字符串存放到数组中的方法:public void getChars(int start,int end,char c[],int offset ) 
    将字符串中的全部字符存放在一个字符数组中的方法:public char[] toCharArray()   


    • 字符串与字节数组
    String(byte[])用指定的字节数组构造一个字符串对象。String(byte[],int offset,int length) 用指定的字节数组的一部分,即从数组起始位置offset开始取length个字节构造一个字符串对象。
    public byte[] getBytes() 方法使用平台默认的字符编码,将当前字符串转化为一个字节数组。
    public byte[] getBytes(String charsetName) 使用参数指定字符编码,将当前字符串转化为一个字节数组。 


    • StringBuffer,StringBuilder 
    StringBuffer append(String s)  StringBuffer append(int n)   
    StringBuffer append(Object o)  StringBuffer append(char n)
    StringBuffer append(long n),StringBuffer append(boolean n),
    StringBuffer append(float n),StringBuffer append(double n),
    public chat charAt(int n )
    public void setCharAt(int n ,char ch)
    StringBuffer insert(int index, String str) :
    public StringBuffer reverse() 
    StringBuffer delete(int startIndex, int endIndex) 
    StringBuffer replace( int startIndex ,int endIndex, String str)

    import java.io.IOException;
    
    public class Linkin 
    {
        public static void main(String[] args) throws IOException 
        {
            //一般使用的构造器有2个 一个无参的 一个传入一个字符串的
            StringBuilder sb = new StringBuilder();
            //追加字符串
            sb.append("LinkinPark...");
            //替换
            sb.replace(0, 1, "binger");
            //删除
            sb.delete(0, 1);
            //反转
            sb.reverse();
            // 设置字符序列的长度
            sb.setLength(3);
            //toString 返回字符串
            System.out.println(sb.toString());
        }
    
    }
    



    StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且方法也一样,关于三者的区别:

    String:不可变字符序列
    StringBuilder:可变字符序列、效率高、线程不安全
    StringBuffer:可变字符序列、效率低、线程安全

    String使用陷阱:
    string s="a"; //创建了一个字符串 s=s+"b"; //实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串s+"b"(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能。在玩hibernate的时候,写hql往往要串好多的字符串,记住以后不管是否拼接不拼接hql,统一使用stringBuiler。

  • 相关阅读:
    Go斐波拉契数列(Fibonacci)(多种写法)
    Go数组和切片定义和初始化
    Go 常见严格格式汇总(struct,func...)不定期更新!
    VMware中,该如何理解桥接网络与NAT 网络模式
    Some projects cannot be imported because they already exist in the workspace
    在网上看别人去韩国的日记
    request.getParameter() 、 request.getInputStream()和request.getReader() 使用体会
    application/xml 和 text/xml的区别
    什么是RESTful API?
    http和webservice接口区别
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5233135.html
Copyright © 2011-2022 走看看