• Java字符串操作编程


    package com.joshua317;
    
    import java.util.StringTokenizer;
    
    public class Main {
    
        public static void main(String[] args) {
    //        stringCompare();
    //        searchLastString();
    //        System.out.println(removeCharAtt("joshua317", 3));
    //        stringReplace();
    //        stringReverse();
    //        searchString();
    //        stringSplit();
    //        stringTokenizerSplit();
    //        stringToUpperCase();
    //        stringConcatenate();
        }
    
        /**
         * 1 字符串比较
         * 使用字符串函数 compareTo (string),compareToIgnoreCase(String)及compareTo(object string) 来比较两个字符串,
         * 并返回字符串中第一个字母ASCII的差值
         */
        public static void stringCompare()
        {
            String str1 = "Hello World";
            String str2 = "hello world";
            Object str3 = str1;
    
            System.out.println(str1.compareTo(str2));
            //忽略大小写
            System.out.println(str1.compareToIgnoreCase(str2));
            System.out.println(str1.compareTo(str3.toString()));
        }
    
        /**
         * 2 查找字符串最后一次出现的位置
         * 使用字符串函数 lastIndexOf(String str),返回指定子字符串在此字符串中最右边出现处的索引。
         */
        public static void searchLastString()
        {
            String str = "Hello world ,Hello joshua317";
            int lastIndex = str.lastIndexOf("joshua317");
            if (lastIndex == - 1) {
                System.out.println("没有找到字符串 joshua317");
            } else {
                System.out.println("joshua317字符串最后出现的位置: "+ lastIndex);
            }
    
            lastIndex = str.lastIndexOf("joshua318");
            if (lastIndex == - 1) {
                System.out.println("没有找到字符串joshua318");
            } else {
                System.out.println("joshua318字符串最后出现的位置: "+ lastIndex);
            }
        }
    
        /**
         * 3 删除字符串中的一个字符
         * 使用字符串函数 substring() 函数来删除字符串中的一个字符
         * @param str
         * @param pos 从0开始计数
         * @return
         */
        public static String removeCharAtt(String str, int pos)
        {
            return str.substring(0, pos) + str.substring(pos + 1);
        }
    
        /**
         * 4 字符串替换
         * 使用字符串函数 replace(char oldChar, char newChar)方法来替换字符串中的字符;
         * replaceFirst(String regex, String replacement),用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串;
         * replaceAll(String regex, String replacement),用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
         */
        public static void stringReplace()
        {
            String str="Hello joshua317";
            System.out.println( str.replace('H','W' ));
            System.out.println( str.replaceFirst("He", "Wa"));
            System.out.println( str.replaceAll("He", "Ha"));
        }
    
        /**
         * 5 字符串反转
         * 使用StringBuffer类的反转函数 reverse() 将字符串反转
         */
        public static void stringReverse()
        {
            String string = "joshua317";
            String reverse = new StringBuffer(string).reverse().toString();
            System.out.println("字符串反转前:" + string);
            System.out.println("字符串反转后:" + reverse);
        }
    
        public static void searchString()
        {
            String str = "Hello joshua317";
            int intIndex = str.indexOf("joshua317");
            if(intIndex == - 1){
                System.out.println("没有找到字符串joshua317");
            }else{
                System.out.println("joshua317字符串位置 " + intIndex);
            }
        }
    
        /**
         * 6 字符串分割
         * 使用split(string) 方法通过指定分隔符将字符串分割为数组
         */
        public static void stringSplit()
        {
            String str1 = "www-joshua317-com";
            String[] temp;
            // 指定分割字符
            String delimeter = "-";
            // 分割字符串
            temp = str1.split(delimeter);
            // 普通 for 循环
            for(int i =0; i < temp.length ; i++){
                System.out.println(temp[i]);
            }
    
            System.out.println("------for each循环输出的方法-----");
            String str2 = "www.joshua317.com";
            String[] temp1;
            // 指定分割字符, . 号需要转义
            String delimeter1 = "\\.";
            // 分割字符串
            temp1 = str2.split(delimeter1);
            for(String x :  temp1){
                System.out.println(x);
            }
        }
    
        /**
         *  7 使用StringTokenizer对字符串分隔
         * 使用 StringTokennizer 设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)。
         * 注意:StringTokennizer会以给定分割字符串的每个字符进行分割,而split(string)是以整个字符串进行切割
         */
        public static void stringTokenizerSplit()
        {
            String str = "Hello joshua317, how are you";
    
            StringTokenizer st1 = new StringTokenizer(str);
            System.out.println("=========StringTokenizer默认情况============");
            while (st1.hasMoreElements()) {
                System.out.println(st1.nextElement());
            }
            StringTokenizer st2 = new StringTokenizer(str, "oh");
            System.out.println("=========StringTokenizer指定字符串分割============");
            while (st2.hasMoreElements()) {
                System.out.println(st2.nextElement());
            }
    
            StringTokenizer st3 = new StringTokenizer(str, "oh", true);
            System.out.println("=========StringTokenizer,返回分隔符============");
            while (st3.hasMoreElements()) {
                System.out.println(st3.nextElement());
            }
        }
    
        /**
         * 8 字符串小写转大写
         * 使用 String类的toUpperCase()方法将字符串从小写转为大写
         */
        public static void stringToUpperCase()
        {
            String str = "joshua317";
            String strUpper = str.toUpperCase();
            System.out.println("原始字符串: " + str);
            System.out.println("转换为大写: " + strUpper);
        }
    
        /**
         * 9 字符串连接
         * 通过 "+"操作符和StringBuffer.append()方法来连接字符串,并且对比下俩者性能
         */
        public static void stringConcatenate()
        {
            long startTime = System.currentTimeMillis();
            for(int i=0; i<5000; i++){
                String result = "This is" + "testing the" + "difference"+ "between" + "String"+ "and"+ "StringBuffer";
            }
            long endTime = System.currentTimeMillis();
            System.out.println("字符串连接" + " - 使用 + 操作符 : " + (endTime - startTime)+ " ms");
    
            long startTime1 = System.currentTimeMillis();
            for(int i=0; i<5000; i++){
                StringBuffer result = new StringBuffer();
                result.append("This is");
                result.append("testing the");
                result.append("difference");
                result.append("between");
                result.append("String");
                result.append("and");
                result.append("StringBuffer");
            }
            long endTime1 = System.currentTimeMillis();
            System.out.println("字符串连接" + " - 使用 StringBuffer : " + (endTime1 - startTime1)+ " ms");
        }
    }
    

     

  • 相关阅读:
    算法
    算法
    算法
    算法
    mysql使用注意事项
    公共接口限制IP请求次数的一种方式(redis版)
    vue echarts 折线图 饼图 地图
    springboot Redis缓存应用示例
    springboot 响应消息 message简单封装 单例和原型模式
    springboot 请求外部接口方法
  • 原文地址:https://www.cnblogs.com/joshua317/p/15764445.html
Copyright © 2020-2023  润新知