Java程序员的Bash实用指南系列之字符串处理(目录)

Java程序员的Bash实用指南系列之字符串处理(目录)

   在一般的计算机编程语言中,字符串处理是很重要的一块,Bash也是如此,如果掌握了字符串的处理,基本上就能够应付大部分的编程工作了。在Unix/Linux操作系统中,很多时候需要使用多个命令一起配合才能完成一个较复杂的任务,Shell提供了管道线、重定向、结构化编程等方式,把这些命令粘合在一起。因此,命令之间的接口数据的处理也就非常重要了,而这大部分都涉及到字符串处理。

 

《UNIX操作系统教程》 写道
  在UNIX系统的设计中,所采用的最基本的设计思想是将复杂的问题进行分解,用最简单、最基本的功能模块做堆积、连接、组合来解决复杂问题。这样在设计上不但可以保证每个基本模块功能单一、易于实现、设计结构清晰,而且组合使用的效果也会比较理想。

 

   在这个系列中,我决定从一个Java程序员的角度来将Bash字符串处理的各个方面做个整理和总结,本系列资料的来源于互联网和个人实践,如有不妥之处,欢迎大家指出来。

 

序号 标题 Java参考
1 (字符串)变量声明 String s; String s2 = "hello";
2 字符串的表示方式(字符串常量) 'c', "string\r\n"
3 给(字符串)变量赋值 s2 = s1; s3 = "another";
4 字符串输出 System.out.println(s);
5 字符串输入(读取字符串) Console.readLine; Scanner.nextLine
6 判断字符串是否为空(不为空) if (s.isEmpty()); if (!s.isEmpty()); StringUtils.isEmpty
7 字符串与默认值 if (s == null) s = "default"; StringUtils.defaultString
8 计算字符串长度 s.length()
9 获取字符串指定位置的字符、遍历字符串中的字符 s.charAt(i)
10 判断两个字符串是否相等(不等) if (s1.equals(s2))
11 比较两个字符串大小(字典顺序、数值比较) s1.compareTo(s2)
12 字符串连接 String s = s1.concat(s2);
13 字符串数组连接(以指定分隔符合并) String join(String[] a, String sep); StringUtils.join
14 判断是否包含另外的字符串(多达6种方法) if (s.contains(s2))
15 计算子串出现的次数 StringUtils.countMatches
16 判断是否以另外的字符串开头 if (s.startsWith(s2))
17 判断是否以另外的字符串结尾 if (s.endsWith(s2))
18 格式化字符串 String.format(format, arg...)
19 查找字符的位置 int pos = s.indexOf(c);
20 查找子串的位置 int pos = s.indexOf(s2);
21 字符串(正则)匹配 if (s.matches(regex))
22 判断字符串是否数字串 if (s.matches("\\d+"))
23 字符串替换、子串删除、子串截取 s.replace(s1, s2); s.replaceAll(s1, s2)
24 文件路径字符串的处理
25 字符串分隔(成数组) String[] a = s.split(regex);
26 根据位置和长度截取子串 String s2 = s.substring(pos, len);
27 转换大小写 String s1 = s.toLowerCase(), s2 = s.toUpperCase();
28 去除前后空白 String s2 = s.trim();
29 字符串翻转
30综合实例:自动生成版本号源文件

 

本文链接:http://codingstandards.iteye.com/blog/1162455   (转载请注明出处)

 

参考资料:

【1】JavaDoc java.lang.String

【2】Apache Commons-Lang Class StringUtils

【3】ABS Advanced Bash-Scripting Guide http://tldp.org/LDP/abs/html/

【4】51CTO 1.2 UNIX系统的主要特性 http://book.51cto.com/art/201001/179368.htm

【5】The Java Tutorials http://download.oracle.com/javase/tutorial

【6】Unix Shell Programming  http://www.tutorialspoint.com/unix/unix-shell.htm

【7】http://tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html

 

修订历史:

2011-08-26 规划、整理资料

2011-08-31 编写目录并发布

2011-09-03 编写30节的草稿,调整了第1节和第2节的顺序

2011-09-05 发布第1节 (字符串)变量声明

2011-09-06 发布第2节 字符串的表示方式(字符串常量)

2011-09-07 发布第3节 给(字符串)变量赋值

2011-09-08 发布第4节 字符串输出

2011-09-13 发布第5节 字符串输入(读取字符串)

2011-09-14 发布第6节 判断字符串是否为空(不为空)

2011-09-15 发布第7节 字符串与默认值

2011-09-16 发布第8节 计算字符串长度

2011-09-19 发布第9节 获取字符串指定位置的字符、遍历字符串中的字符

2011-09-20 发布第10节 判断两个字符串是否相等(不等)

2011-09-21 发布第11节 比较两个字符串大小(字典顺序、数值比较)

2011-09-23 发布第12节 字符串连接

2011-09-26 发布第13节 字符串数组连接(以指定分隔符合并)

2011-09-27 发布第14节 判断是否包含另外的字符串(多达6种方法)

2011-09-28 发布第15节 计算子串出现的次数

2011-10-08 发布第16节 判断是否以另外的字符串开头

2011-10-09 发布第17节 判断是否以另外的字符串结尾

2011-10-17 发布第18节 格式化字符串

2011-10-18 发布第19节 查找字符的位置

2011-10-19 发布第20节 查找子串的位置

2011-10-24 发布第21节 字符串(正则)匹配

2011-10-25 发布第22节 判断字符串是否数字串

2011-10-26 发布第23节 字符串替换、子串删除、子串截取

2011-10-30 发布第24节 文件路径字符串的处理

2011-11-03 发布第25节 字符串分隔(成数组)

2011-11-04 发布第26节 根据位置和长度截取子串

2011-11-07 发布第27节 转换大小写

2011-11-08 发布第28节 去除前后空白

2011-11-09 发布第29节 字符串翻转

 

 

YOLOv5改进 | 注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制,附二次创新) 本文给家大家带来的改进机制是iRMB,其是在论文Rethinking Mobile Block for Efficient Attention-based Models种提出,论文提出了一个新的主干网络EMO(后面我也会教大家如何使用该主干,本文先教大家使用该文中提出的注意力机制)。其主要思想是将轻量级的CNN架构与基于注意力的模型结构相结合(有点类似ACmix)我将iRMB和C2f结合,然后也将其用在了检测头种进行尝试三种结果进行对比,针对的作用也不相同,但是无论那种实验均有一定涨点效果。 阅读详情

相关推荐

电流镜结构实战:从零理解MOS管偏置电路设计(附吴金课程补充)

本文深入解析电流镜结构在MOS管偏置电路设计中的关键作用,从基本原理到实战应用全面覆盖。通过分析偏置电路的核心原理、破解设计难题的实用技巧,以及进阶优化策略,帮助工程师掌握这一模拟电路设计的核心技术。特别适合需要理解电流镜结构和基准电路设计的读者参考学习。

ujm5678901的博客 256

java linux 多级目录 文件夹_Java获取Linux上指定文件夹下所有第一级子文件夹

packagecom.sunsheen.jfids.studio.monitor.utils;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.uti...

weixin_31533759的博客 449

光纤布拉格光栅(FBG)笔记【1】:波导结构和布拉格波长推导

引言 本文是光纤布拉格光栅(FBG)的笔记【1】,主要介绍了光纤布拉格光栅的波导结构,并且利用动量和能量守恒推导了光纤布拉格波长的表达式 普通光纤中让折射率发生周期性变化就是结构最简单的均匀光纤布拉格光栅(FBG),其波导结构如下图所示。 其传感原理描述可以分为以下的三点: ①光纤纤芯传播的光会在每个光栅面进行反射和透射; ②如果不满足布拉格条件,依次排列的光栅平面反射的光会逐渐变得不同直到最后相互抵消;同时由于系数不匹配,与布拉格波长不相符的光在每个光栅平面的反射也很微弱,这些光大部分在光纤中发生透.

subtitle_的博客 2万+

BASH字符串处理:字符串分割为数组

http://codingstandards.iteye.com/blog/1164910 Bash字符串处理(与Java对照) - 25.字符串分割(成数组) In Java String.split  String[]     split(String regex)           根据给定的正则表达式的匹配来拆分此字符串。  String[]

zouyongjin的专栏 7763

思维链:让AI更接近人类思维的技术

本文将探讨一种名为“思维链”的技术,它旨在让AI更接近人类思维。文章首先介绍了问题背景与核心概念,接着讲解了算法原理和数学模型,随后阐述了系统分析与架构设计,最后通过项目实战展示了思维链的实际应用,并提供了最佳实践和小结。思维链是一种旨在模拟人类思维过程的技术,它通过构建一系列相互关联的思维方式,实现对复杂问题的分析和解决。思维链算法是一种基于人类思维过程的人工智能算法,它通过构建一系列思维链,实现对问题的分析和解决。智能问答系统是一种常见的人工智能应用,它能够回答用户提出的各种问题。

AI天才研究院 942

一文搞定离线环境下的RAG引擎部署

在人工智能浪潮下,技术已成为构建智能问答、文档分析和代码助手等应用的核心。然而,在许多企业场景中,出于数据安全和性能的考虑,服务器往往部署在中,并要求极致的推理效率。这给依赖外部资源的应用部署带来了巨大挑战。如何在这种严苛的环境下,完整、可靠地部署一套包含向量数据库、**高性能推理服务(vLLM)**和Python后台的复杂RAG系统呢?本文将为你提供一个,手把手教你如何使用 Docker 技术,将一套基于 Weaviate 和的 Python RAG 应用完整打包,并在离线环境中一键部署。

木鱼时刻的专栏 1241

Bash字符串处理(与Java对照) - 9.获取字符串指定位置的字符、遍历字符串中的字符...

Bash字符串处理(与Java对照) - 9.获取字符串指定位置的字符、遍历字符串中的字符 In Java 取指定索引位置的字符 char     charAt(int index)          返回指定索引处的 char 值,其中index从0开始计数。   遍历字符串中的字符 int len = s.length(); for (int i = 0; ...

巨人站在肩膀上 316

Open3D(C++) 点云构建三维Delaunay三角剖分

C++版本的Open3D实现从点云构建三维Delaunay,可视化效果。

点云侠的博客 2247

Bash字符串处理(与Java对照) - 23.字符串替换、子串删除、子串截取

Bash字符串处理(与Java对照) - 23.字符串替换、子串删除、子串截取 In Java 字符串替换  String     replace(char oldChar, char newChar)           返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。  String     replace(CharSe...

巨人站在肩膀上 633

Python爬虫实战:携程/飞猪酒店信息爬取与动态价格分析

在当今数字化旅游时代,酒店预订平台的复杂筛选条件和动态定价机制为数据分析和价格监控带来了巨大挑战。本文将深入探讨如何使用最新的Python爬虫技术来抓取携程和飞猪平台的酒店信息,处理复杂的筛选条件,并解析动态价格数据。本文详细介绍了如何使用最新的Python爬虫技术来抓取携程和飞猪平台的酒店信息。通过结合httpxplaywrightparsel强大的反反爬虫能力:通过浏览器指纹伪装、请求签名、智能延迟等技术应对各种反爬措施高效的数据解析:使用CSS选择器和XPath精确提取所需信息灵活的数据存储。

2201_76125261的博客 414

【ComfyUI】VideoRefusion 动态替换视频背景

本文介绍了一个基于ComfyUI的视频背景替换工作流,通过WanVAE和WanTextEncoder核心模型实现人物与背景的智能分离与替换。工作流包含9个关键流程阶段,涉及视频采样、图像增强等节点操作,可生成风格统一、动作自然的视频效果。该技术适用于虚拟人物创作、短视频特效、产品广告等场景,支持个性化定制开发。相关资源可参考文末提供的ComfyUI教程和AIGC工具平台开发指南。(149字)

Mr数据杨 2188

【Linux系列】字符串操作的艺术:删除前缀的 Shell 脚本技巧

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 1万+

【网络安全】零基础入门网络安全劝退指北

作为从16年接触网络安全的小白,谈谈零基础如何入门网络安全,有不对的地方,请多多指教。 这些年最后悔的事情莫过于没有把自己学习的东西积累下来形成一个知识体系。 后续我也会陆续的整理网络安全的相关学习资料及文章,与大家一起探讨学习。 如何入门 简单了解网络安全 网络安全就是指的确保网络系统中的数据不被别人破坏,而网安工程师就是涉及程序来维护网络安全。 网安方向有很多职位,比如安全产品工程师,安全分析师,数据恢复工程师,网络架构工程师,安全编程工程师,以及网络集成工程师等。 工作内容主要包括: 安全评测,风

互联网老辛 4583

java 字符串截取替换_Bash字符串处理(与Java对照) - 23.字符串替换、子串删除、子串截取...

Bash字符串处理(与Java对照) - 23.字符串替换、子串删除、子串截取In Java字符串替换?String ??? replace(char oldChar, char newChar)????????? 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。?String ??? replace(CharSequence target, C...

weixin_39601641的博客 168

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C系语言出身的程序员学习bash编程

0 脚本语言作用 脚本对于系统运维人员来说就是生产工具,它代表了维护工作的生产力。unix类的系统里脚本得到相当好的发展,windows为了在服务器领域有所突破,也提供了powershell这样的脚本引擎。 脚本在分析日志、批量修改、自动处理等领域具有不可替代的作用,脚本是解释性语言,它作为一门独立的语言其功能和效率并不出色,但脚本更重要的是作为一种”粘合剂“把各种功能组合在一起,已完成更复杂

smstong的成长轨迹 3330

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Bash字符串处理(与Java对照) - 12.字符串连接

Bash字符串处理(与Java对照) - 12.字符串连接 In Java String.concat String     concat(String str)           将指定字符串联到此字符串的结尾。   String newStr = str.concat(str2);   StringBuilder.append & StringBuffer...

巨人站在肩膀上 171

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Bash Infinity终极指南:解决开发者遇到的20个典型问题

Bash Infinity是一个现代化的Bash标准库和框架,它彻底改变了Bash脚本的编写方式。这个强大的Bash OO框架为开发者提供了类似Java、C#和JavaScript的现代编程特性,让Bash脚本开发变得更加高效和可维护。无论你是Bash新手还是有经验的开发者,Bash Infinity都能帮助你解决日常开发中的各种挑战。 ## 为什么选择Bash Infinity框架? 传统的

gitblog_00343的博客 672

Bash字符串处理(与Java对照) - 11.比较两个字符串大小(字典顺序、数值比较)...

Bash字符串处理(与Java对照) - 11.比较两个字符串大小(字典顺序、数值比较) In Java String.compareTo int     compareTo(String anotherString)           按字典顺序比较两个字符串。如果返回0,表示相等;<0表示小于;>0 表示大于。   int     compareToIgnor...

巨人站在肩膀上 806

Linux里面Bash的使用方法

2021SC@SDUSC Shell shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。用来区别与核,相当于是一个命令解析器,Shell有很多中,这里列出其中几种 Bourne SHell(sh) Bourne Again SHell(bash) C SHell(csh) KornSHell(ksh) zsh 各个shell的功能都差不太多,在某些语法的下达下面有些区别,Linux预设就是bash。这里主要介绍bash bash bash命令是sh命令的超集,大多数sh脚本

zhuizong8的博客 9888

Bash字符串处理(与Java对照) - 28.去除前后空白

Bash字符串处理(与Java对照) - 28.去除前后空白 In Java String     trim()           返回字符串的副本,忽略前导空白和尾部空白。   In Bash 使用echo命令去除串中的空白 echo $STR 注意 $STR 不要带引号。因为 $STR 展开后,会作为 echo 的参数。那么 echo 在处理参数的时候,自然会...

巨人站在肩膀上 304

Bash字符串处理(与Java对照) - 24.文件路径字符串的处理(路径处理)

Bash字符串处理(与Java对照) - 24.文件路径字符串的处理(路径处理) In Java File类:得到指定文件的文件名、文件所在目录 import java.io.File; public class TestFile { public static void main(String[] args) { Strin...

巨人站在肩膀上 283

实用bash命令记录

本篇文章记录工作中比较实用,能减轻工作量的bash命令。 1.字符串截取 假设有这么一个变量silo=/home/liujiacai/codes/cascalog/silo,那么 ${silo##/*/}=silo, ${silo#/*/}=liujiacai/codes/cascalog/silo ##表示取后面字符串最长的那段;#表示取最短的那段

Keep writing codes 1332

Bash字符串处理(与Java对照) - 8.计算字符串长度

Bash字符串处理(与Java对照) - 8.计算字符串长度 In Java 取字符数量 一个汉字算1个字符。 int len = s.length();   JavaDoc class String 写道 public int length() Returns the length of this string. The length is equal to ...

巨人站在肩膀上 312

Bash Infinity终极指南:新手到专家的完整学习路径

Bash Infinity是一个现代化的Bash标准库和框架,它将C#、Java或JavaScript等语言的概念引入Bash,让脚本编写更简洁、可读性更强。无论你是Bash新手还是有经验的开发者,本指南都能帮助你快速掌握这个强大工具的核心功能和使用方法。 ## 为什么选择Bash Infinity? 传统Bash脚本常常因为语法晦涩、错误处理复杂而让开发者头疼。Bash Infinity通过

gitblog_01024的博客 777

【Linux】Shell 脚本中的字符串处理技巧

本文介绍了Shell脚本中的字符串处理技巧,包括字符串定义与赋值、长度计算、截取与切片等基础操作,并通过密码强度检查和文件路径处理等实战案例展示了这些技巧的应用。文中还提供了对应的Java代码示例,便于开发者对比理解不同语言中的字符串处理方式。文章内容实用,适合Shell脚本初学者和进阶开发者学习参考。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

Bash字符串处理(与Java对照) - 22.判断字符串是否数字串

Bash字符串处理(与Java对照) - 22.判断字符串是否数字串 In Java 用正则表达式匹配方式判断字符串是否数字串 String str = "1234"; if (str.matches("\\d+")) {     // matched, it's digit string }   In Bash 使用模式匹配(Pattern Matching)判...

巨人站在肩膀上 307
上一篇: 我使用过的Linux命令之:(冒号) - 啥也不做(除了……)
下一篇: 在Linux下怎么一次性删除掉那些修改时间为指定日期的所有文件?
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值