java常用的字符串工具类

1. replaceString 方法

该方法用于去除字符串中的逗号(,)以及两端的空格。方法名可能有些误导,因为它不仅仅替换逗号,还去除了空格。如果目的是明确表示去除逗号和空格,建议将方法名改为 removeCommaAndTrim 或类似的名称。

2. isValidPhone 方法

该方法用于校验手机号是否合法。

3. reverseString 方法

该方法实现了字符串的反转功能,逻辑正确且高效。无需修改。

4. isNumeric 方法

该方法用于判断字符串是否为数字(包括整数和小数)。逻辑正确,使用正则表达式匹配。

5. formatDate 方法

该方法将Date对象格式化为指定格式的字符串。它正确地处理了null输入的情况,并使用了SimpleDateFormat来格式化日期。但是,当SimpleDateFormat实例被多次使用时(尤其是在高并发环境下),它可能不是线程安全的。虽然在这个工具类中只使用了一次,但在其他场景下使用时需要注意。

总结

这个工具类提供了几个实用的字符串处理方法,但在isValidPhone方法的逻辑上需要注意修正。此外,方法命名和注释的清晰性对于维护和理解代码非常重要。在实际使用中,还需要注意SimpleDateFormat的线程安全问题。

package com.certificateManage.util.stringUtil;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 字符串工具类,提供了一系列处理字符串的静态方法。
 */
public class StringUtils {

    // 定义日期格式
    private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

    /**
     * 去除字符串的","以及两端的空格。
     *
     * @param str 输入的字符串
     * @return 处理后的字符串
     */
    public static String replaceString(String str) {
        if (str == null) {
            return null; // 可以选择返回null或空字符串,取决于具体需求
        }
        String str1 = str.trim();
        return str1.replaceAll(",", "");
    }

    /**
     * 校验手机号是否合法。
     *
     * @param phoneNumber 输入的手机号
     * @return 合法返回true,不合法返回false
     */
    public static boolean isValidPhone(String phoneNumber) {
        // 正则表达式,匹配以1开头,后面跟着10位数字的手机号
        String regex = "^1[3-9]\\d{9}$";
        // 如果手机号为空或null,则认为不合法
        if (phoneNumber == null || phoneNumber.trim().isEmpty()) {
            return false;
        }
        // 使用正则表达式匹配手机号
        return phoneNumber.matches(regex);
    }

    /**
     * 将字符串反转。
     *
     * @param s 输入的字符串
     * @return 反转后的字符串
     */
    public static String reverseString(String s) {
        char[] arr = s.toCharArray();
        int left = 0;
        int right = arr.length - 1;
        while (left < right) {
            char temp = arr[left];
            arr[left] = arr[right];
            arr[right] = temp;
            left++;
            right--;
        }
        return new String(arr);
    }

    /**
     * 判断字符串是否为数字(包括整数和小数)。
     *
     * @param str 输入的字符串
     * @return 是数字返回true,否则返回false
     */
    public static boolean isNumeric(String str) {
        // 使用正则表达式匹配整数和小数
        return str != null && str.matches("^-?\\d+(\\.\\d+)?$");
    }

    /**
     * 将Date对象转换为指定格式的字符串。
     *
     * @param date 输入的Date对象
     * @return 转换后的字符串,如果date为null则返回空字符串
     */
    public static String formatDate(Date date) {
        if (date == null) {
            return "";
        }
        SimpleDateFormat format = new SimpleDateFormat(DATE_FORMAT);
        return format.format(date);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/764124.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3、加密算法-AES和RSA

前两节博客主要是针对MD5和哈希算法&#xff0c;数字签名算法做了阐述和总结&#xff1b; 这篇文章主要是针对AES和RSA做一个概况和比较&#xff0c;以及相关的一些概念&#xff1b; 一、对称加密算法 对称加密算法是指加密和解密采用相同的密钥口&#xff0c;是可逆的(即可解…

高等数学在Android开发中的应用:函数极限与算法优化

高等数学在Android开发中的应用:函数极限与算法优化 在Android开发中,高等数学中的许多概念和技术都能够显著提高应用程序的性能和功能。这篇博客将探讨一些具体的数学原理,特别是函数极限在Android中的实际应用。 函数极限的基本概念 函数极限是微积分的基础,广泛应用于…

R可视化:好看的气泡图

加载R包 library(tidyverse) library(camcorder)gg_record(dir "tidytuesday-temp", device "png", width 8, height 8, units "in", dpi 320)导入数据 team_results <- readr::read_csv(https://raw.githubusercontent.com/rfordata…

有手就行,轻松本地部署 Llama、Qwen 大模型,无需 GPU

用 CPU 也能部署私有化大模型&#xff1f; 对&#xff0c;没错&#xff0c;只要你的电脑有个 8G 内存&#xff0c;你就可以轻松部署 Llama、Gemma、Qwen 等多种开源大模型。 非技术人员&#xff0c;安装 Docker、Docker-compose 很费劲&#xff1f; 不用&#xff0c;这些都不…

vue中路由来回切换页面直接卡死

今天发现一个很严重的问题&#xff0c;项目好不容易做好了&#xff0c;结果页面多了&#xff0c;切换之后卡死。页面所有的交互效果都失效了。 排查了许久的错误原因最后发现原来是路由名称重复了。 如上图当页面跳转到riskdetails详细页面之后&#xff0c;框架则被这个详情页…

SSE代替轮询?

什么是 SSE SSE&#xff08;Server-Sent Events&#xff0c;服务器发送事件&#xff09;&#xff0c;为特定目的而扩展的 HTTP 协议&#xff0c;用于实现服务器向客户端推送实时数据的单向通信。如果连接断开&#xff0c;浏览器会自动重连&#xff0c;传输的数据基于文本格式。…

高温下的稳定选择 —— PP消解管,耐化学更耐用

PP消解管&#xff0c;即聚丙烯材质的消解管&#xff0c;是一种常用于化学分析中的实验室设备&#xff0c;主要用于样品的消解处理。以下是PP消解管的一些主要特性和应用&#xff1a; 主要特性&#xff1a; 1. 耐化学腐蚀&#xff1a;PP材料对多数酸、碱和有机溶剂具有良好的耐…

Vue笔记-vue中使用JS创建的函数

主要是公司对前端要求不高&#xff0c;能解决问题就行了&#xff0c;前端不太熟&#xff0c;用js这种处理起来方便&#xff0c;在此记录下。 在src中创建一个api目录&#xff0c;新建custom.js export const getDivHeightByClass (className) > {let divElements docume…

MySQL数据库中文乱码处理

出现中文乱码之后处理方式 1、执行下面语句查看一下关于编码方式 show variables like %char%结果展示&#xff1a;【你应该和我的不一样】 2、如果你的和我查询结果不一致请设置成一致语句&#xff0c;根据自己需要复制语句 如下&#xff1a;【除了最后一条记录哈】 SET G…

mysql中的递归函数recursive

递归部门 WITH recursive dept_tree AS (SELECTsd.mine_id AS mine_id,sd.dept_id AS dept_id,sd.tenant_id AS tenant_id,sd.order_num,sd.dept_name AS topName,sd.dept_id AS topIdFROMsys_dept sdWHERE<!-- 加上or后也会查询出dept节点 sd.parent_id #{deptId} or sd.…

.net core 的缓存方案

这里主要讲两个缓存的使用&#xff0c;MemoryCache和Redis 先讲讲常见的缓存 1、.net framework web中自带有Cache缓存&#xff0c;这种缓存属于粘性缓存&#xff0c;是缓存到项目中的&#xff0c;项目从服务器迁移的时候缓存的内容也能够随着服务器一起迁移 2、MemoryCache缓存…

The First Descendant联机失败?第一后裔联机异常这样做

第一后裔/The First Descendant是一款由nexon开发的免费网游TheFirstDescendant第一后即将正式上线了&#xff0c;游戏的外观自定义系统还是非常不错的&#xff0c;人物角色可以选择不同风格的面部妆容&#xff0c;而且外观不仅可以更改颜色&#xff0c;还可以更改对应的材质和…

linux 控制台非常好用的 PS1 设置

直接上代码 IP$(/sbin/ifconfig eth0 | awk /inet / {print $2}) export PS1"\[\e[35m\]^o^\[\e[0m\]$ \[\e[31m\]\t\[\e[0m\] [\[\e[36m\]\w\[\e[0m\]] \[\e[32m\]\u\[\e[0m\]\[\e[33m\]\[\e[0m\]\[\e[34m\]\h(\[\e[31m\]$IP\[\e[m\])\[\e[0m\]\n\[\e[35m\].O.\[\e[0m\]…

65、基于卷积神经网络的调制分类(matlab)

1、基于卷积神经网络的调制分类的原理及流程 基于卷积神经网络&#xff08;CNN&#xff09;的调制分类是一种常见的信号处理任务&#xff0c;用于识别或分类不同调制方式的信号。下面是基于CNN的调制分类的原理和流程&#xff1a; 原理&#xff1a; CNN是一种深度学习模型&a…

如何用matplotlib绘制图像分类任务的类别特征空间分布

import matplotlib.pyplot as plt import numpy as np from sklearn.decomposition import PCA from sklearn.datasets import load_iris from mpl_toolkits.mplot3d import Axes3D# 加载示例数据&#xff08;Iris 数据集&#xff09; data load_iris() X data.data y data.…

SQLyog脚本无限试用重置脚本

文章目录 引言脚本(win)必要操作、说明 引言 SQLyog 需要po jie&#xff0c;但是网上的没看到很好使的&#xff0c;直接下的官方。能处理14天试用也是很ok的。 脚本(win) echo offREM SQLyog注册表key&#xff0c;可能跟你的不一样&#xff0c;如果不一样&#xff0c;请替换…

聊聊gitlab ci如何构建以时间为版本号的docker镜像

前言 最近朋友他们部门有部分内部项目&#xff0c;打算用gitlab ci来做项目持续集成部署&#xff0c;他们有个需求&#xff0c;构建docker镜像的时候&#xff0c;版本需要是以当前时间作为版本。其格式为yyyymmddhhmm 一开始朋友翻阅官方文档&#xff0c;发现gitlab ci有个变…

uniapp实现可拖动悬浮按钮(最新版2024-7月)

此章主要介绍如何使用uniapp跨平台开发&#xff0c;实现悬浮按钮&#xff0c;移动端经常会有所这样的需求&#xff0c;那么功能如下&#xff1a; 1.圆圈悬浮球&#xff0c;上下左右靠边显示 2.可以界面任何拖动&#xff0c;不会超出界面 3.单击悬浮球的点击事件 效果&#xf…

JAVA-Redis数据结构—跳跃表(Skiplist)【包含Java实现详情代码】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

分析:地产行业使用短信群发平台营销引流效果如何?

地产行业使用短信群发平台营销引流的效果可以从以下几个方面进行分析和归纳&#xff1a; 一、营销效果显著提升 1.精准定位目标客户&#xff1a;通过短信群发平台&#xff0c;地产企业可以根据客户的年龄、职业、地域、购房需求等信息&#xff0c;进行精准筛选和定位&#xf…