前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java字符串操作编程

Java字符串操作编程

作者头像
joshua317
发布2022-03-25 10:55:46
2130
发布2022-03-25 10:55:46
举报
文章被收录于专栏:技术博文
代码语言:javascript
复制
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");
    }
}

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/225

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档