• 字符串


    一、String类
    在java中字符串作为String类的实例来处理
    • 声名字符串(java中,字符串必需包含在一对双引号""之内
    String str;
    • 创建字符串
    char a[] = {'g','o','o','d'}; //字符数组
    String s = new String(a); //等价于 String s = new String("good");
     
    char a[] = {'s','t','u','d','e','n','t'};
    String s = new String(a, 2, 4); //等价于 String s = new String("uden");
     
    String str1,str2;
    str1 = "We are student";
    str2 = "We are student";
    • 连接多个字符串
    使用"+"连接多个字符串(java中一句相连的字符串不能分开在两行中写,如果需要在两行中写,在第一行行尾处加上"+"连接)
    String str3 = str1 + str2;
    • 连接其他数据类型
    字符串也可以同其他基本数据类型进行连接,连接会将这些数据直接转换成字符串。
    public static void example4() {
        int booktime = 4;
        float practice = 2.5f;
     
        System.out.println("我每天花费" + booktime + "小时看书;" + practice + "小时上机练习;");
        System.out.println("我每天花费" + booktime + "小时看书;" + (practice+booktime) + "小时上机练习;");
    }
     
    二、获取字符串信息
    字符串作为对象,可通过相应的方法获取字符串的有效信息
    • 获取字符串长度
    String str = "we are student";
    int size = str.length();
    • 字符串查找
    indexOf(); //返回字符或字符串在另一字符串中首次出现的位置
    lastIndexOf(); //返回字符或字符串在另一字符串中最后一次出现的位置
     
    public static void example5() {
        String stu = "we are students";
        System.out.println(stu.indexOf('t'));
        System.out.println(stu.indexOf("tu"));
        System.out.println(stu.lastIndexOf('t'));
        System.out.println(stu.length());
    }
    • 获取指定索引位置的字符串
    //使用charAt()方法可将指定索引处的字符返回
     
    String str = "hello world";
    char mychar = str.charAt(6);
     
    三、字符串操作
    • 获取字符串
    //String类的substring()方法可以对字符串进行截取
    //substring(int beginIndex, int endIndex);
     
    String str = "hello world";
    System.out.println(str.substring(6,9));
     
    str = "hello world";
    System.out.println(str.substring(6));
    • 去除空格
    //str.trim();
     
    String str = " java class ";
    System.out.println(str.length());
     
    str = str.trim();
    System.out.println(str.length());
    • 字符串替换
    //str.replace(char oldChar, char newChar);
     
    String str = "I like php";
    str = str.replace("php", "java");
    System.out.println(str);
    • 判断字符串的开始与结尾
    //判断字符串是否以指定的内容开始或结束。返回boolean
    //startsWith();
    //endsWith();
     
    String str = "I like php";
    System.out.println(str.startsWith("I"));
    System.out.println(str.startsWith("i"));
    System.out.println(str.endsWith("php"));
    • 判断字符串是否相等
    1. 对字符串对象进行比较不能简单的使用比较运算符"==",因为比较运算符是比较两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false
    2. 如果两个字符串具有相同的字符长度,使用equals()方法进行比较时,返回true
    //equalsIgnoreCase(); 不区分大小写
     
    public static void example11() {
        String str1 = new String("hello java");
        String str2 = new String("hello java");
        System.out.println(str1 == str2);      //false
        System.out.println(str1.equals(str2)); //true
     
        str1 = "hello java";
        str2 = "hello java";
        System.out.println(str1 == str2);       //true
        System.out.println(str1.equals(str2));  //true
     
        str1 = "hello java";
        str2 = "hello JAVA";
        System.out.println(str1 == str2);         //false
        System.out.println(str1.equals(str2));    //false
        System.out.println(str1.equalsIgnoreCase(str2));  //true
    }
    • 按字典顺序比较两个字符串
    //compareTo();
     
    public static void example12() {
        String a = "a";
        String c = "c";
        String e = "e";
     
        System.out.println(c.compareTo(a)); //2
        System.out.println(c.compareTo(e)); //-2
    }
    • 字母大小写转换
    //toLowerCase();
    //toUppercase();
     
    public static void example13() {
        String str = "abcDEFG";
        System.out.println(str.toLowerCase());
        System.out.println(str.toUpperCase());
    }
    • 字符串分割
    //split(); 按指定的分割字符或字符串对内容进行分割,并将分割后的结果放在字符串数组中
    //str.split(String sign);
    //str.split(String sign, int limit);
     
    public static void example14() {
        String str = "192.168.0.1";
     
        String[] firstArray = str.split("\.");
        String[] secondArray = str.split("\.", 3);
     
        for(String x : firstArray) {
            System.out.print("["+x+"]"); //[192][168][0][1]
        }
     
        for(String x : secondArray) {
            System.out.print("["+x+"]"); //[192][168][0.1]
        }
    }
    • 格式化字符串
    //String类的静态format()方法用于创建格式化的字符串
    //str.format(String format, Object...args) //新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。
    //str.format(Local l,String format,Object...args) //使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。
     
    String str = String.format("%d", 400 / 2); //将结果以十进制格式显示
    String str2 = String.format("%b", 3 > 5);  //将结果以boolean型显示
    String str3 = String.format("%x", 200);    //将结果以十六进制格式显示
     
    System.out.println(str); //200
    System.out.println(str2); //false
    System.out.println(str3); //c8
     
    Date date = new Date();
    System.out.printf("全部日期和时间信息:%tc%n",date);
    System.out.printf("年-月-日格式:%tF%n",date);
    System.out.printf("月/日/年格式:%tD%n",date);
    System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
    System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
    System.out.printf("HH:MM格式(24时制):%tR",date);
    • 使用正则表达式
    //通常被用于判断语句中,用来检查某一字符串是否满足某一格式
    //matches();
     
    public static void example17() {
        String regex = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$";
        String str1 = "asdfagearg";
        String str2 = "aegagewg@sgesg";
        String str3 = "segsseggg@qq.com";
     
        System.out.println(str1.matches(regex)); //false
        System.out.println(str2.matches(regex)); //false
        System.out.println(str3.matches(regex)); //true
    }
    • 字符串生成器
    字符序列String-Builder类,大大提高频繁增加字符串的效率。大量的字符串拼接等操作时使用。
    1. append();  向字符串生成器中追加内容
    2. insert();  向字符串生成器中指定位置插入数据内容
    3. delete();  移除此序列的子字符串中的字符
    public static void example18(){
        StringBuilder str = new StringBuilder("aaa");
     
        str = str.append("->bbb");
        System.out.println(str.toString()); //aaa->bbb
     
        str = str.insert(3, "->ccc");
        System.out.println(str.toString()); //aaa->ccc->bbb
     
        str = str.delete(3, 8);
        System.out.println(str.toString()); //aaa->bbb
    }
  • 相关阅读:
    JAVA中“==”和equals
    C++中各种容器的类型与特点
    程序员面试宝典 笔记 第七章
    程序员面试宝典 笔记(第六章 预处理 const 和sizeof())
    某学长面经
    tomcat 启动日志乱码
    Jenkins关闭和重启实现方式
    linux下svn版本控制的常用命令大全
    Java中的增强 for 循环 foreach
    JS 中 cookie 的使用
  • 原文地址:https://www.cnblogs.com/duomen/p/12911882.html
Copyright © 2020-2023  润新知