split表达式其实就是一个正则表达式,*|.^等符号在正则表达式中属于一种有特殊含义的字符,下面这篇文章主要给大家介绍了关于Java中split根据“.“分割字符串问题的相关资料,需要的朋友可以参考下
1. 为啥str.split(“.”) 分割出来的是空的
split() 方法根据匹配给定的正则表达式来拆分字符串。
注意: . $ | * 等转义字符,必须得加 \\。
因此,应该用str.split(“\\.”)
2. Java中的转义字符 Escape Character
字母前加上"\"来表示一些不能显示的ASCII字符,如\0,\t,\n等,因为0,t,n等都不是原本ASCII表中的意思了,所以称为转义字符。
格式为:\+要转义的字符
3. 正则表达式中的转义符
正则表达式中的转义符也为"\"。所以在java中书写正则表达式时,要先通过java的转义再通过正则表达式的转义才是真正要的表达式。
举例
想要实现将字符串str = “192.168.0.1” 按照“.”进行分割。
使用split(String regex)方法,regex 为正则表达式分隔符。
由于正则表达式中"." 是一个具有特殊意义的字符,它可用于匹配任何字符。
因此需要转义符“\”,即正则表达式为regex = “\.”
但是转义符"\“在java中也充当着转义符,因此还要对”\“进行转义。
所以正则表达式要写成 “\\.”
String[] strs = str.split(”\\.")
补充:java的split方法分割字符串(分隔符如* | . ^ )及注意点
1、split表达式,其实就是一个正则表达式。* | . ^ 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\加以转义。
String add1="南京*建邺区";
String[] splitAdd1=add1.split("\\*");
System.out.println(splitAdd1[0]+splitAdd1[1]);
String add2="南京|建邺区";
String[] splitAdd2=add2.split("\\|");
System.out.println(splitAdd2[0]+splitAdd2[1]);
String add3="南京.建邺区";
String[] splitAdd3=add3.split("\\.");
System.out.println(splitAdd3[0]+splitAdd3[1]);
String add4="南京^建邺区";
String[] splitAdd4=add4.split("\\^");
System.out.println(splitAdd4[0]+splitAdd4[1]);
2、如果使用多个分隔符则需要借助 | 符号。
String address="南京1^南京2*南京3#南京4|南京5";
String[] splitAddress=address.split("\\^|\\*|#|\\|");
System.out.println(splitAddress[0]+splitAddress[1]+splitAddress[2]+splitAddress[3]+splitAddress[4]);
总结
到此这篇关于Java中split根据"."分割字符串问题的文章就介绍到这了,更多相关Java split根据.分割字符串内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:Java中split根据"."分割字符串问题举例
基础教程推荐
- Java并发编程进阶之线程控制篇 2023-03-07
- java实现多人聊天系统 2023-05-19
- ConditionalOnProperty配置swagger不生效问题及解决 2023-01-02
- Java文件管理操作的知识点整理 2023-05-19
- springboot自定义starter方法及注解实例 2023-03-31
- java基础知识之FileInputStream流的使用 2023-08-11
- JDK数组阻塞队列源码深入分析总结 2023-04-18
- Java实现线程插队的示例代码 2022-09-03
- Java数据结构之对象比较详解 2023-03-07
- Java实现查找文件和替换文件内容 2023-04-06