Java字符串分割方法split()的功能以及使用方法的详细介绍!

Java字符串分割方法split()的功能以及使用方法的详细介绍!在Java的学习中经常会遇到按照自己的理想情况分割字符串,并根据分割后的结果进行后续操作的问题。对于这些问题就可以使用Java提供的split()方法进而实现,下面详细的介绍它的功能以及使用方法。一、功能    Java提供的String.split()方法可以根据自己的理想情况(自己想要的结果),将目标字符串进行分割从而对分割后的结果进行进一步的操作。用一个例子来说明它的功能:

大家好,又见面了,我是你们的朋友全栈君。

     在Java的学习中经常会遇到按照自己的理想情况分割字符串,并根据分割后的结果进行后续操作的问题。对于这些问题就可以使用Java提供的split() 方法进而实现,下面详细的介绍它的功能以及使用方法。

一、功能
        Java提供的String.split()方法可以根据自己的理想情况(自己想要的结果),将目标字符串进行分割从而对分割后的结果进行进一步的操作。用一个例子来说明它的功能:将字符串“no pains,no gains!”解析成含有4个单词的字符串数组。思想:首相要考虑清楚将字符串按什么条件进行分割,在本题中有空格,但是仅仅按照空格分割后的结为:“no”“pains,no”“gains!”这并不是目标效果。所以应该将该字符串按空格、逗号、感叹号进行分割从而得到“no”“pains”“no”“gains”的效果。
二、使用方法以及注意事项
        在使用方面,由于要按照多个条件进行分割,所以需要使用“|”作为连字符,而split()方法的返回值是一个字符型数组,所以使用的语句为:String []a=test.split(” |”);(其中test为要分割的字符串,a字符型数组为分割后结果的存储位置)。下面给出例题的解题代码:

public class Hello_Java {
	public static void main(String[] args) {
	          String test="no pains,no gains!";
	           String []a=test.split(" |,|!");           
	           System.out.println("分解后的单词个数为:"+a.length);
	          for(int i=0;i<a.length;i++)
	          {
	        	  System.out.println(a[i]);
	          }
		}
}

分割后存入数组中时,数组的第一个元素即为“no” 同理第二个元素为:“pains”等等。所以在对分割后的结果进行操作时,可以直接赋值给相应变量做后续操作。

在使用split();方法是要注意以下情况:

        因为public string[] split(string regex) 这里的形参是 regular expression (正则表达式)。他对一些特殊的字符可能会出现你预想不到的结果,比如下面的字符:
(1) 用竖线 | 分隔字符串,你将得不到预期的结果
           例如:String[] aa = “aaa|bbb|ccc”.split(“|”); 得到的结果是每个字符都进行了分割(可自行验证),并不是预期的效果。应该将代码部分改为String[] aa = “aaa|bbb|ccc”.split(“\\|”); 这样才能得到正确的结果。
(2)用 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。   
           例如:String[] aa = “aaa*bbb*ccc”.split(“*”); 与上文同理应该改为String[] aa = “aaa|bbb|ccc”.split(“\\*”); 这样才能得到正确的结果。
(3)还有如果想在串中使用”\\”字符,则也需要转义。应该这样使用:String[] aa = “aaa\\bbb\\bccc”.split(“\\\\”); 
(4) 还有就是点号”.”,与上文同理即为:String[] aa = “aaa.bbb.bccc”.split(“\\.”); 
可能还有一些没有掌握的字符,读者可自行试验进行转义,并留言给我相互学习,谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151067.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月22日 下午5:00
下一篇 2022年6月22日 下午5:00


相关推荐

  • pip安装scrapy失败_scrapy框架运行

    pip安装scrapy失败_scrapy框架运行错误如图所示,running setup.py install for Twisted…..errorTwisted依赖库安装报错,重新下载手动安装一下下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs注意:看下安装的python是什么版本,我安装的python 3.9.0,就下载cp39,64位的下载安装的版本不对,就会报:Twisted-20.3.0-cp38-cp38-win_amd64.whl is not a support…

    2022年8月18日
    11
  • DIV+CSS布局

    DIV+CSS布局DIV CSS 布局

    2026年3月18日
    2
  • 列式数据库简介

    列式数据库简介什么是列式数据库 列数据存储区也称为面向列的 DBMS 或列式数据库管理系统 列存储 DBMS 将数据存储在列而不是行中 关系数据库管理系统 RDBMS 将行中的数据和数据属性存储为列标题 基于行的 DBMS 和基于列的 DBMS 都使用 SQL 作为查询语言 但是面向列的 DBMS 可能会提供更好的查询性能 假设您需要根据 ID 列出表中的所有名称 而不是遍历所有行 您可以只访问表的单个列 以下是列数据存储 DBMS 的一些关键特性 列存储 DBMS 使用的键空间类似于 RDBMS 中的数据库架构 列存储 DBMS 具有称为列族的概

    2026年3月19日
    3
  • nmap命令小结(一)

    nmap命令小结(一)Nmapnmap是一个非常强大的网络扫描工具,学习nmap的话,我建议大家多读一读官方文档,这里我所写的也仅仅是对Nmap中文文档的一个总结,以及一些我的个人看法。官方文档地址:http://www.nmap.com.cn/主机发现端口扫描主机发现nmap的主机发现主要是基于ICMP包的一个探测,所以用nmap的主机发现命令格式大多都是-P*;-sP:nmap仅对主机进行ping扫

    2022年5月8日
    40
  • vscode支持java_vscode配置go环境

    vscode支持java_vscode配置go环境VScode配置Java环境1.下载JDK方式一:手动下载JDKOracleJavaSEAdoptOpenJdkAzulZuluforAzure-EnterpriseEdition方式二:VSCode中下载JDK下载JAVA插件扩展方式一:windows平台下可以直接访问这个地址直接下载带有java插件的vscode方式二:在vscode中下载以下插件LanguageSupportforJavabyRedHatDebug

    2026年4月17日
    1
  • 数位DP模板详解

    数位DP模板详解已经很长时间没有做过关于数位 DP 的题目了 现在来写一下自己对于数位 DP 的理解 一般这种题目都是问在区间 l r 内满足某种条件的数有多少 显然我们可以转换为求 0 x 中满足该条件的数有多少 然后利用前缀和思想 直接用 0 r 中满足某种条件的数的个数减去 0 l 1 中满足某种条件的个数即可 这个就不细说了 下面看一下板子 inta N llf N s 第一维一般是当前枚举到的位数 第二位表示状态 具体问题具体分析 lldp intpos 当前枚举到的位 s 代表状态 b

    2025年6月15日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号