详解字符串拆、截、格式化之法 | 带你学《Java面向对象编程》之三十四

简介: 本节结合多组代码详细介绍了字符串拆分、截取与格式化相关的方法及其使用方法。

上一篇:迅速学会字符串查找与替换 | 带你学《Java面向对象编程》之三十三
【本节目标】
通过阅读本节内容,你将了解到字符串拆分、截取、格式化相关的方法,并学会使用这些方法来对字符串进行相关的操作。

字符串拆分

在字符串处理的时候还提供有一种字符串拆分的处理方法,字符串的拆分操作主要是可以根据一个指定的字符串或者是一些表达式实现字符串的拆分,并且拆分完成的数据将以字符串数组的形式返回。

No. 方法名称 类型 描述
01 public String[] split(String regex) 普通 按照指定的字符串全部拆分
02 public String[] split(String regex,int limit) 普通 按照指定的字符串拆分为指定个数,后面不拆了

范例:观察字符串拆分处理

public class StringDemo{
   public static void main(String args[]) {
       String str = “hello world hello mldn” ;
       String result [] = str.split(“ ”) ;     //空格拆分
       for (int x = 0 ; x < result.length ; x ++) {
          System.out.println(result [x]) ;   
       }
   }      
}

image.png
图一 执行结果一

除了可以全部拆分之外,,也可以拆分为指定的个数。
范例:拆分指定个数

public class StringDemo{
   public static void main(String args[]) {
       String str = “hello world hello mldn” ;
       String result [] = str.split(“ ” , 2) ;     //空格拆分
       for (int x = 0 ; x < result.length ; x ++) {
          System.out.println(result [x]) ;   
       }
   }      
}

image.png
图二 执行结果二

但是在进行拆分的时候有可能会遇见拆不了的情况,这种时候最简单的理解就是使用“\”进行转义。

public class StringDemo{
   public static void main(String args[]) {
       String str = “192.168.1.2” ;
       String result [] = str.split(“.”) ;     //.拆分
       for (int x = 0 ; x < result.length ; x ++) {
          System.out.println(result [x]) ;   
       }
    }      
}

image.png
图三 执行结果三

public class StringDemo{
   public static void main(String args[]) {
       String str = “192.168.1.2” ;
       String result [] = str.split(“\\.”) ;     //.拆分
       for (int x = 0 ; x < result.length ; x ++) {
          System.out.println(result [x]) ;   
       }
   }      
}

image.png
图四 执行结果四

对于拆分与替换的更多操作后面会进行更多的讲解说明。

字符串截取

从一个完整的字符串之中截取出子字符串,对于截取操作有两个方法。

No. 方法名称 类型 描述
01 public String substring(int beginIndex) 普通 从指定索引到结尾
02 public String substring(int beginIndex,int endIndex) 普通 截取指定索引范围中的子字符串

范例:观察字符串截取操作

public class StringDemo{
   public static void main(String args[]) {
       String str = “www.mldn.cn” ;
       System.out.println(str.substring(4)) ;   //mldn.cn
       System.out.println(str.substring(4 , 8)) ;   //mldn
   }      
}

在实际的开发之中,有些时候的开始或结束索引往往都是通过indexOf()方法计算得来的。
范例:观察截取

public class StringDemo{
   public static void main(String args[]) {
       //字符串结构:“用户id-photo-姓名.后缀”
       String str = “mldn-photo-张三.jpg” ;
       int beginIndex = str.indexOf(“-” ,str.indexOf(“photo”)) + 1 ;
       int endIndex = str.lastIndexOf(“.”) ;
       System.out.println(str.substring(beginIndex,endIndex)) ;   //张三
   }      
}

在以后的实际开发之中,这种通过计算来确定索引的情况非常常见。

字符串格式化

从JDK1.5开始为了吸引更多的传统开发人员,Java提供有了格式化数据的处理操作。类似于C语言之中的格式化输出语句。可以利用占位符实现数据的输出,对于占位符而言,常用的:字符串(%s)、字符(%c)、整数(%d)、小数(%f)等来描述。

No. 方法名称 类型 描述
01 public static String format(String format,各种类型... args) 普通 根据指定结构进行文本格式化显示

范例:观察格式化处理

public class StringDemo{
   public static void main(String args[]) {
       String name = “张三” ;
       int age = 18 ;
       double score = 98.765321 ;
       String str = String.format(“姓名:%s、年龄:%d、成
绩:%5.2f。”,name ,age ,score) ;
       System.out.println(str) ;   
   }      
}

image.png
图五 执行结果五

这种格式化的输出操作算是String 的一个附加功能。
想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:领略String完美侧颜-其他操作方法 | 带你学《Java面向对象编程》之三十五
更多Java面向对象编程文章查看此处

相关文章
|
2月前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
323 108
|
4月前
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
497 82
|
3月前
|
存储 Java
Java LocalDateTime与hutool DateUtil实现秒转换为时分秒格式化展示。
注意:以上代码示例仅适合于处理小于24小时内(86400s) 总积 因 LocalDateTime 和 Local Time 不支持超过24小时表达而 huo tool示例虽然理论上支持但未考虑超过24小时情况下可能出现负值等异常情况处理细节需用户自行添加相关逻辑以确保正确性.
247 7
|
4月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
298 14
|
8月前
|
存储 缓存 安全
Java 字符串详解
本文介绍了 Java 中的三种字符串类型:String、StringBuffer 和 StringBuilder,详细讲解了它们的区别与使用场景。String 是不可变的字符串常量,线程安全但操作效率较低;StringBuffer 是可变的字符串缓冲区,线程安全但性能稍逊;StringBuilder 同样是可变的字符串缓冲区,但非线程安全,性能更高。文章还列举了三者的常用方法,并总结了它们在不同环境下的适用情况及执行速度对比。
194 17
|
8月前
|
存储 缓存 安全
Java字符串缓冲区
字符串缓冲区是用于处理可变字符串的容器,Java中提供了`StringBuffer`和`StringBuilder`两种实现。由于`String`类不可变,当需要频繁修改字符串时,使用缓冲区更高效。`StringBuffer`是一个线程安全的容器,支持动态扩展、任意类型数据转为字符串存储,并提供多种操作方法(如`append`、`insert`、`delete`等)。通过这些方法,可以方便地对字符串进行添加、插入、删除等操作,最终将结果转换为字符串。示例代码展示了如何创建缓冲区对象并调用相关方法完成字符串操作。
182 13
|
存储 XML 缓存
Java字符串内幕:String、StringBuffer和StringBuilder的奥秘
Java字符串内幕:String、StringBuffer和StringBuilder的奥秘
211 0
|
安全 Java API
【Java字符串操作秘籍】StringBuffer与StringBuilder的终极对决!
【8月更文挑战第25天】在Java中处理字符串时,经常需要修改字符串,但由于`String`对象的不可变性,频繁修改会导致内存浪费和性能下降。为此,Java提供了`StringBuffer`和`StringBuilder`两个类来操作可变字符串序列。`StringBuffer`是线程安全的,适用于多线程环境,但性能略低;`StringBuilder`非线程安全,但在单线程环境中性能更优。两者基本用法相似,通过`append`等方法构建和修改字符串。
239 1
|
API C# 开发者
WPF图形绘制大师指南:GDI+与Direct2D完美融合,带你玩转高性能图形处理秘籍!
【8月更文挑战第31天】GDI+与Direct2D的结合为WPF图形绘制提供了强大的工具集。通过合理地使用这两种技术,开发者可以创造出性能优异且视觉效果丰富的WPF应用程序。在实际应用中,开发者应根据项目需求和技术背景,权衡利弊,选择最合适的技术方案。
938 1