import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
/**
* 字符串工具箱
*
*/
public final class StringToolkit {
/**
* 将一个字符串的首字母改为大写或者小写
*
* @param srcString 源字符串
* @param flag 大小写标识,ture小写,false大些
* @return 改写后的新字符串
*/
public static String toLowerCaseInitial(String srcString, boolean flag) {
StringBuilder sb = new StringBuilder();
if (flag) {
sb.append(Character.toLowerCase(srcString.charAt(0)));
} else {
sb.append(Character.toUpperCase(srcString.charAt(0)));
}
sb.append(srcString.substring(1));
return sb.toString();
}
/**
* 将一个字符串按照句点(.)分隔,返回最后一段
*
* @param clazzName 源字符串
* @return 句点(.)分隔后的最后一段字符串
*/
public static String getLastName(String clazzName) {
String[] ls = clazzName.split("\\.");
return ls[ls.length - 1];
}
/**
* 格式化文件路径,将其中不规范的分隔转换为标准的分隔符,并且去掉末尾的"/"符号。
*
* @param path 文件路径
* @return 格式化后的文件路径
*/
public static String formatPath(String path) {
String reg0 = "\\\\+";
String reg = "\\\\+|/+";
String temp = path.trim().replaceAll(reg0, "/");
temp = temp.replaceAll(reg, "/");
if (temp.endsWith("/")) {
temp = temp.substring(0, temp.length() - 1);
}
if (System.getProperty("file.separator").equals("\\")) {
temp= temp.replace('/','\\');
}
return temp;
}
/**
* 格式化文件路径,将其中不规范的分隔转换为标准的分隔符,并且去掉末尾的"/"符号(适用于FTP远程文件路径或者Web资源的相对路径)。
*
* @param path 文件路径
* @return 格式化后的文件路径
*/
public static String formatPath4Ftp(String path) {
String reg0 = "\\\\+";
String reg = "\\\\+|/+";
String temp = path.trim().replaceAll(reg0, "/");
temp = temp.replaceAll(reg, "/");
if (temp.endsWith("/")) {
temp = temp.substring(0, temp.length() - 1);
}
return temp;
}
public static void main(String[] args) {
System.out.println(System.getProperty("file.separator"));
Properties p = System.getProperties();
System.out.println(formatPath("C:///\\xxxx\\\\\\\\\\///\\\\R5555555.txt"));
// List<String> result = series2List("asdf | sdf|siii|sapp|aaat| ", "\\|");
// System.out.println(result.size());
// for (String s : result) {
// System.out.println(s);
// }
}
/**
* 获取文件父路径
*
* @param path 文件路径
* @return 文件父路径
*/
public static String getParentPath(String path) {
return new File(path).getParent();
}
/**
* 获取相对路径
*
* @param fullPath 全路径
* @param rootPath 根路径
* @return 相对根路径的相对路径
*/
public static String getRelativeRootPath(String fullPath, String rootPath) {
String relativeRootPath = null;
String _fullPath = formatPath(fullPath);
String _rootPath = formatPath(rootPath);
if (_fullPath.startsWith(_rootPath)) {
relativeRootPath = fullPath.substring(_rootPath.length());
} else {
throw new RuntimeException("要处理的两个字符串没有包含关系,处理失败!");
}
if (relativeRootPath == null) return null;
else
return formatPath(relativeRootPath);
}
/**
* 获取当前系统换行符
*
* @return 系统换行符
*/
public static String getSystemLineSeparator() {
return System.getProperty("line.separator");
}
/**
* 将用“|”分隔的字符串转换为字符串集合列表,剔除分隔后各个字符串前后的空格
*
* @param series 将用“|”分隔的字符串
* @return 字符串集合列表
*/
public static List<String> series2List(String series) {
return series2List(series, "\\|");
}
/**
* 将用正则表达式regex分隔的字符串转换为字符串集合列表,剔除分隔后各个字符串前后的空格
*
* @param series 用正则表达式分隔的字符串
* @param regex 分隔串联串的正则表达式
* @return 字符串集合列表
*/
private static List<String> series2List(String series, String regex) {
List<String> result = new ArrayList<String>();
if (series != null && regex != null) {
for (String s : series.split(regex)) {
if (s.trim() != null && !s.trim().equals("")) result.add(s.trim());
}
}
return result;
}
/**
* @param strList 字符串集合列表
* @return 通过“|”串联为一个字符串
*/
public static String list2series(List<String> strList) {
StringBuffer series = new StringBuffer();
for (String s : strList) {
series.append(s).append("|");
}
return series.toString();
}
/**
* 将字符串的首字母转为小写
*
* @param resStr 源字符串
* @return 首字母转为小写后的字符串
*/
public static String firstToLowerCase(String resStr) {
if (resStr == null) {
return null;
} else if ("".equals(resStr.trim())) {
return "";
} else {
StringBuffer sb = new StringBuffer();
Character c = resStr.charAt(0);
if (Character.isLetter(c)) {
if (Character.isUpperCase(c))
c = Character.toLowerCase(c);
sb.append(resStr);
sb.setCharAt(0, c);
return sb.toString();
}
}
return resStr;
}
/**
* 将字符串的首字母转为大写
*
* @param resStr 源字符串
* @return 首字母转为大写后的字符串
*/
public static String firstToUpperCase(String resStr) {
if (resStr == null) {
return null;
} else if ("".equals(resStr.trim())) {
return "";
} else {
StringBuffer sb = new StringBuffer();
Character c = resStr.charAt(0);
if (Character.isLetter(c)) {
if (Character.isLowerCase(c))
c = Character.toUpperCase(c);
sb.append(resStr);
sb.setCharAt(0, c);
return sb.toString();
}
}
return resStr;
}
}
相关推荐
西门子S7-200 SMART PLC高速计数器与增量式编码器实战配置指南
在工业自动化控制系统中,传感器是将物理量转换为电信号的关键组件,其中编码器作为核心的位置与速度检测元件,其工作原理基于光电或磁电效应,将机械位移转换为脉冲序列。增量式编码器通过输出相位差90度的A/B两相脉冲,不仅能实现精确的位移测量,还能通过相位关系自动判别运动方向,并通过倍频技术提升分辨率。其技术价值在于为PLC等控制器提供了实时、高精度的位置反馈,是实现闭环控制、提升系统精度与可靠性的基础。在包装机械、物料输送、绕线设备等应用场景中,编码器与PLC高速计数器的协同工作是实现精确定位、定长切割与速度控制
音乐年份预测:基于MSongsDB的机器学习模型构建与评估
MSongsDB(Million Song Dataset)是由The Echo Nest与LabROSA合作开发的开源音乐数据项目,包含百万级歌曲的元数据与音频分析信息。本文将带你探索如何利用MSongsDB中的YearPrediction任务模块,构建高效的音乐年份预测模型,实现从音频特征到发行年代的精准推断。 ## 🎯 任务概述:音乐年份预测的核心价值 音乐年份预测是通过分析歌曲的音频
sqoop抽取mysql的数据到hive表里面,字段内容被自动截取,导致字段不全的问题解决
今天央视重新转播NBA,写篇博客纪念一下这个重要的日子,湖人的表现就呵呵了!!!! 强行转到博客的主题来 mysql的字段属性:该字段能存下的值比如:“山东” `province` varchar(3) NOT NULL COMMENT '省份' 用sqoop sqoop import --connect "jdbc:mysql://xxxxxx:3306/xxxxxx?tinyInt1isBit=false&zeroDateTimeBehavior=convertToNull..
字符串操作工具包
public class StringUtils { private static final String _BR = ""; // 全局数组 private final static String[] strDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d",
微信小程序|基于小程序实现人脸识别对比
此文主要通过小程序实现对比人脸相似度,并返回相似度分值,可以基于分值判断是否为同一人。人脸登录、用户认证等场景都可以用到。
php输出后以密文显示,PHP工具箱加密字符串为MD5密文教程
许多网友向小编反映不知道怎么使用PHP工具箱?哪里有PHP工具箱的使用教程?今天极速小编为大家提供一个使用教程,希望对大家有帮助!首先我们下载PHP工具箱(下载地址:http://www.jisuxz.com/down/61766.html),下载解压后按步骤打开。安装软件后双击PHP工具箱桌面快捷方式打开软件:PHP工具箱是一款好用的PHP开发辅助工具。要使用PHP工具箱的话,需要使用账号密码登...
详解YOLOv8网络结构/环境搭建/数据集获取/训练/推理/验证/导出/部署
YOLO(You Only Look Once)系列算法因其高效、准确等特点而备受瞩目。由2023年Ultralytics公司发布了YOLO的最新版本YOLOv8是结合前几代YOLO的基础上的一个融合改进版。本文YOLOv8网络结构/环境搭建/数据集获取/训练/推理/验证/导出/部署,从网络结构的讲解从模型的网络结构讲解到模型的部署都有详细介绍,同时在本专栏中还包括YOLOv8模型系列的改进包括个人提出的创新点,传统卷积、注意力机制、损失函数的修改教程,能够帮助你的论文获得创新点。
【阿来来gis规划师工具箱说明书】b11字符串转ASCII码
工具箱下载链接:https://pan.baidu.com/s/1MxDCKWgyD2VoDJJbZl_eLw?制作符号时,会遇到将汉字转换为ASCII的问题,就是将汉字转换为Unicode。实际上找到在线网址,也有一些相关的在线转换。通过Python内置程序将汉字转换为ASCII(转换为Unicode)。本工具免费使用,欢迎进群跟大家一起来讨论。1、执行后注意保存一下转换后的信息。参数一:输入任意个汉字。
R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV
R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV
Android 15.0 首次开机默认授予app运行时权限(去掉运行时授权弹窗)
在15.0的系统rom产品定制化开发中,在6.0以后对于权限的申请,都需要动态申请,所以会在系统首次启动后,在app的首次运行时, 会弹出授权窗口,会让用户手动授予app运行时权限,在由于系统产品开发需要要求默认授予app运行时权限,不需要用户默认授予运行时弹窗,所以需要在首次开机默认授予所有app运行时权限
Flipper Zero Unleashed固件工具箱:字符串处理与版本管理
在嵌入式开发中,字符串处理和版本管理往往是开发者最头疼的问题之一。内存受限、性能要求高、跨平台兼容性差,这些问题在Flipper Zero这样的资源受限设备上尤为突出。你是否曾经: - 为内存泄漏而调试到深夜? - 因为字符串操作不当导致设备崩溃? - 难以追踪固件版本和构建信息? - 在配置文件读写中遇到编码问题? Flipper Zero Unleashed固件通过精心设计的字符串处理库和...
数据处理和分析之数据聚类:层次聚类(Hierarchical Clustering):单链接层次聚类方法
单链接层次聚类(Single-Linkage Hierarchical Clustering)是凝聚型层次聚类的一种,它基于数据点之间的最小距离来定义聚类间的相似性。在单链接层次聚类中,两个聚类之间的距离定义为这两个聚类中任意两个数据点之间的最短距离。这种聚类方法倾向于形成链状或线性的聚类,因为聚类的边界是由最远的数据点决定的,而不是聚类的平均或中心位置。单链接层次聚类通过计算簇间最近点的距离来决定簇的合并,这种方法简单直观,但可能导致簇的形状不规则,尤其是在数据点分布不均匀的情况下。
java对字符处理(三)-- 字符串工具箱
<br />package com.tw.str.util; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Properties; /** * 字符串工具箱 * @author tw 2009-07-16 */ public final class StringToolkit { /** * 将一个字符串的首字母改为大写或者小写
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
涛哥的Python脚本工具箱之批量替换目录所有指定扩展名的文件中的指定字符串
今天发布刚完成的涛哥的Python脚本工具箱之批量替换目录所有指定扩展名的文件中的指定字符串,命令行参数处理改用目前比较好用的argparse库,Python代码如下: #!/usr/bin/python2.7 # -*- encoding: UTF-8 -*- # Copyright 2014 offbye@gmail.com """replace old string with
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
【阿来来gis规划师工具箱说明书】b16添加四至点坐标至字符串字段
对于一个图斑,其四至坐标主要是指四个方向的极值坐标。这里主要是指多边形的点。如果是圆形或者椭球形,则会出错。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
c语言函数字符串首尾互换,C语言字符串工具箱DIY之剔除字符串首尾的空白字符的str_trim函数...
@Header File Named "string_toolbox.h"Contents ofFile "string_toolbox.h"Are as follows:#ifndef STRING_TOOLBOX_H_INCLUDED#defineSTRING_TOOLBOX_H_INCLUDEDchar *str_trim(const char *str);#endif@Source F...
Bit 工具箱指南:使用 ellipsis 工具函数截断字符串并追加省略号
`scopes/toolbox/string/ellipsis` 是 Bit 开源仓库 `toolbox/string` 目录下的一个极简 TypeScript 字符串工具:当文本超过指定长度时将其截断并追加 `...`,否则原样返回。本文以 [ellipsis.docs.md](https://link.gitcode.com/i/30f70f3d33f82e8698e18cc26f88698f
【零基础小白学编程方法】,编程从入门到精通系列教程,附:编程工具箱之字符串设置构件的用法
文章摘要:本文介绍了适合中文用户的零门槛编程学习方法。全中文编程工具具有安装简单、界面友好、构件丰富等特点,通过可视化构件和命令式交互,实现无需专业代码知识的编程体验。重点讲解了字符串设置构件的属性和方法,包括字符串操作、ASCII码转换等实用功能,并提供了两个具体应用实例。文章还规划了从入门到进阶的系统学习路径,强调掌握编程思路后可快速迁移到其他语言或平台开发。最后指出入门项目应注重低门槛、及时反馈和成就感培养,为编程学习者提供了清晰的学习指引。
Stringy库:PHP字符串操作的强力工具箱
**Stringy** 是一个由 Daniel St. Jules 开发的 PHP 字符串处理库,它专为多字节字符集(如UTF-8)提供全面支持。此项目采用面向对象的方式封装了许多字符串操作功能,弥补了 PHP 标准库在处理多字节字符串时的不足,并且添加了一系列实用的字符串操作方法。主要编程语言自然是 **PHP**,兼容PHP 5.4及以上版本,包括PHP 7系列及HHVM。 ## 新手使用常...
【小白学编程入门视频教程】,编程从入门到精通系列教程,附:编程工具箱之字符串加密构件的用法
这篇文章介绍了适合编程初学者的中文编程工具和学习路径。该工具采用纯中文界面和构件化设计,无需专业编程知识,通过四种命令即可实现交互式开发,显著降低学习门槛。文章详细讲解了字符串加密构件的用法,包括属性、方法和事件,并提供了实例演示。学习路径分为快速入门、掌握思路、深入提升、触类旁通和拓展学习五个阶段,从基础操作到商业软件开发循序渐进。特别强调编程思路的重要性,掌握后可快速学习其他语言或开发APP。该工具和方法适合大学生、IT人士和编程爱好者,能帮助用户高效掌握编程技能。
Simulink库浏览器中有大量的模型组件工具箱介绍
查找表中的断点就是特定的横坐标,如下图所示,表是由给定的坐标点组成的,每个点可表示特定的一组关系,如(温度,压力),当给定一个温度输入,如3.5,该温度在3和4之间,而温度3和4对应的压力是已知的,将采用某种插值算法计算温度3.5时的压力,如线性插值方法。在 Simulink 建模过程中,当存在多个相关信号需要一起处理时,为了避免大量信号线的混乱连接,可使用 BusCreator 模块将这些信号组合成一条总线Bus,总线是一种逻辑上的信号集合,它将多个信号捆绑在一起,作为一个整体进行传输和处理。
强力字符串处理工具箱:str/str 开源项目推荐
强力字符串处理工具箱:str/str 开源项目推荐 在日常的开发工作中,字符串处理是必不可少的一环。今天,我们要向大家推荐一个高效且功能丰富的PHP字符串操作库 —— str/str。这是一个专为速度和易用性设计的库,它继承了著名库"Stringy"的优点,并针对性能进行了优化,确保在多字节编码下也能流畅运行。 项目介绍 str/str 是一款高度类型化的PHP字符串处理库,它...
399



被折叠的 条评论
为什么被折叠?



