String split

【Linux】常见指令的使用 Linux常用指令 阅读详情

使用String.split方法时遇到的问题

今天在使用String.split()方法时因为使用"|"作分割符,总是得不到结果。于是在网上Google了一下,终于找到了答案。


在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
我们看jdk doc中说明
public String[] split(String regex)
Splits this string around matches of the given regular expression.
参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:
用竖线 | 分隔字符串,你将得不到预期的结果
  String[] aa = "aaa|bbb|ccc".split("|");
  //String[] aa = "aaa|bbb|ccc".split("//|"); 这样才能得到正确的结果
  for (int i = 323 ; i <aa.length ; i++ ) {
    System.out.println("--"+aa);
  }
用 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。
  String[] aa = "aaa*bbb*ccc".split("*");
  //String[] aa = "aaa|bbb|ccc".split("//*"); 这样才能得到正确的结果  
  for (int i = 323 ; i <aa.length ; i++ ) {
    System.out.println("--"+aa);
  }
显然,+ * 不是有效的模式匹配规则表达式,用"//*" "//+"转义后即可得到正确的结果。
"|" 分隔串时虽然能够执行,但是却不是预期的目的,"//|"转义后即可得到正确的结果。
还有如果想在串中使用"/"字符,则也需要转义.首先要表达"aaaa/bbbb"这个串就应该用"aaaa//bbbb",如果要分隔就应该这样才能得到正确结果:
String[] aa = "aaa//bbb//bccc".split("////");

另在JDK API里找到此段说明,大意是为了防止正则表达式里的转义符与java语句里的"/"搞混,特用"//"作转义符。
Backslashes within string literals in Java source code are int434reted as required by the Java Language Specification as either Unicode escapes or other character escapes. It is therefore necessary to double backslashes in string literals that represent regular expressions to protect them from int434retation by the Java bytecode compiler. The string literal "/b", for example, matches a single backspace character when int434reted as a regular expression, while "//b" matches a word boundary. The string literal "/(hello/)" is illegal and leads to a compile-time error; in order to match the string (hello) the string literal "//(hello//)" must be used.

别再混淆了!一张图看懂SAP特殊采购类30/40/70/80的区别与选型指南 本文深度解析SAP特殊采购类30/40/70/80的核心逻辑与业务影响,通过对比框架和真实案例帮助用户掌握其适用边界。重点介绍委外加工(类型30)、工厂间转移(类型40/70)及计划与执行分离(类型80)的配置要点与常见问题,提供选型决策树和实施检查清单,助力企业优化供应链管理。 阅读详情

相关推荐

构建自己的哨兵数据集(以sentinel-1为例,使用SNAP软件)

通过欧洲航天官网获取哨兵数据的产品,通过SNAP软件进一步得到SAR图像(以导出图片为例)

xiaoxTai的博客 6183

SQL Server 2022 STRING_SPLIT表值函数特性增强

SQL Server 2022 STRING_SPLIT表值函数特性增强介绍

zxrhhm的博客 2060

【Docker】Docker安装Hadoop分布式集群

hadoop目录安装在:/usr/local/hadoop-2.7.0/etc/hadoop。访问Hadoop102:9870,查看是否能够看到hdfs界面。访问hadoop103:8088,查看能够看到yarn界面。在yarn上可以看到执行情况。

weixin_46429290的博客 3460

Java中用split()方法分割IP地址

IP地址的格式为 211.87.226.11 用split()方法根据 “.” 分割地址 String ip = "211.87.226.11"; String[] ips = ip.split("\\."); for (String i : ips){ System.out.println(i); } split方法中的参数是正则表达式,“.” 原本需要...

linux91的专栏 7041

ROS2_IGH方案配置(二)——Ubuntu22.04 实时内核性能验证与调优

本文详细介绍了在Ubuntu22.04系统上配置ROS2_IGH方案时,如何验证和调优PREEMPT_RT实时内核性能。通过使用cyclictest工具进行基准测试和压力测试,分析中断与硬件延迟,并优化内核参数,确保系统满足工业控制领域对硬实时性的苛刻要求。文章还提供了针对ROS2的特殊优化建议和性能监控方案,帮助开发者实现毫秒级延迟的稳定控制。

weixin_30791095的博客 224

我用 GPT-5.5 十分钟搞定一篇文献综述!附全流程指南

每一个框架中提出的逻辑链接,都必须至少有一篇提供文本中的文献作为支撑、严格禁止虚构变量、逻辑关系或研究结果、如果某些变量或关系在文本中未提及,必须明确声明“在提供的文本中未找到相关信息”、引用格式必须严格遵循原文提供的“作者/年份”格式,例如:[Smith, 2022]。各位同仁好,我是七哥。扫描提供的文献摘要,识别存在冲突的结果或理论、分析这些文献之间的差异,并总结可能导致差异的原因、输出一个结构化的学术争论段落,清楚呈现文献间的分歧和潜在影响因素、对于缺失或不明确的信息,按约束条件如实标注。

智能AI让学术科研更容易 370

String.Split

    10月9

1668

从数字后端角度谈谈occ电路(二)

从图中,我们可以清晰的看出,当scan_en为1时,test mode为1时,经过一系列逻辑单元后,得到clk_sel输出信号为1,同样可推算fast_clk_en = 0,slow_clk_en为1,此时clk_out输出为slow clk,符合我们预期。在该模式下,是使用slow clock进行scan shift,接着我们开始进行推导;从图中,我们根据逻辑运算可以看出,clk_sel输出信号为0,fast clk en为1,此时通过mux选择,clk out即为fast clk;

芯冰乐 359

java用spilt方法分割ip地址

必须对"."进行转意 “ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。 public static void main(string[] args) {   string value = "192.168.128.33";   string[] names = value.split("\\.");   for (int i = 0; i  sys

周二也被占用 3505

【华为OD机试真题 2025C卷】895、贪心歌手 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

【华为OD机试真题 2025C卷】895、贪心歌手 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何备战华

KJ.JK 964

TensorFlow2深度学习实战(十四):目标检测算法 YOLOv4 解析

最易上手的【计算机视觉】小白教程!

不积跬步,无以至千里! 7635

String用split方法分割字符串的注意事项

在运用String的split方法分割一些字符串时,比如IP地址(192.168.0.166),文件全名(abcd.mp4、泰塔尼克号.avi)时,需要用“.”作为分隔符时,代码如下: String ip = “192.168.0.166”; String[ ] str = ip.split("."); 如果打印一下该str会发现会空,原因为“.”为特殊的符号,必须在前面加上“\\”才可以,

小米虫的博客 601

导航系统 | 全球四大卫星导航系统(2025)核心能力对比分析

北斗系统通过GEO卫星(80°E、110.5°E、140°E)实现区域增强,其IGSO卫星在亚太地区形成"8"字形轨迹,使该区域可见卫星数量比GPS多4-6颗,显著提升复杂环境下的定位可用性[13]。北斗短报文功能在2025年云南地震救援中发挥关键作用,被困人员通过北斗终端发送120字求救信息,实现"位置+状态"一体化上报,救援响应时间缩短40%[15]。北斗通过三频信号(B1C/B2a/B3)消除电离层延迟误差,在城市峡谷环境下定位连续性达99.98%,优于GPS的99.95%[5]。

尘世冰封的专栏 2614

Java String的split方法总结

String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组。 1、一般用法 用一般的字符,例如@或,等符号做分隔符时: String address="上海@上海市@闵行区@吴中路"; String[] splitAddr=address.split("@"); System.out.println(splitAddr [0]+spl...

weixin_38569499的博客 2万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C#的String.Split方法

String.Split方法有6个重载函数: 1) public string[] Split(params char[] separator) 2) public string[] Split(char[] separator, int count) 3) public string[] Split(char[] separator, StringSplitOptions options) 4) public string[] Split(string[] separator, StringSpli.

sinat_33439863的博客 5513

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SQL Server中的STRING_SPLIT函数

This article will cover the STRING_SPLIT function in SQL Server including an overview and detailed usage examples. 本文将介绍SQL Server中的STRING_SPLIT函数,包括概述和详细的用法示例。 SQL Server users usually ne...

culuo4781的博客 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

JAVA中String的split方法

我的个人网站: http://riun.xyz 以下源码版本:JDK1.8 简介 Java 中 String 的 split 方法可以将字符串根据指定的间隔进行切割,例如字符串 str = “1,23,4,5” 经过 str.split(",") 切割后得到的返回值是一个字符串数组 String[] = [1, 23, 4, , 5],这种处理方式可以适配大多数场景。 问题 今天写一个读取csv文件的时候,发现一个小问题。【csv,一种文本文件格式,每行中的数据以逗号分隔,在windows平台可以使用

hanhanhanxu的博客 4399

C++string字符串split的6种方法

C++string字符串split的6种方法

whl0071的专栏 8362

String的split()的两种方法

String的split()的两种方法 public String[] split(String regex) 该方法就是给定的表达式和限制参数0来调用两参数split方法。 public String[] split(String regex,int limit) 规定:使用regex进行字符串切割称为模式匹配 参数regex: 1.如果表达式不匹配输入的任何内容,返回的数组只具有一个元素...

weixin_30912051的博客 180

关于string的split

当用string的split方法的时候,当分隔符为“|”或者“$”的时候,并不能把String分隔开,而是把每个字符都当成一个数组元素,以空格开头。 -------------------- split("\\|")...

robot_liu 984

Regex.Split 与String.Split 使用小结

String.Split 方法有6个重载函数:   1) public string[] Split(params char[] separator) 2) public string[] Split(char[] separator, int count) 3) public string[] Split(char[] separator, StringSplitOptions

whjani的专栏 2525

String类的split使用

1、split类的两个方法 split常用于分割数组取值。 (1)split(String) :后面值为空将直接出现截断 (2)split(String, int) :不出现截断,全部分割 2、实例演示 public class Test { public static void main(String[] args) { String str1 = "a11,b2,c3,d4,,,"; String[] split1 = str1.split(",");//结果:[a11, b2, c3,

爱打篮球爱折腾的程序猿 5109

C#的String.Split 方法

String.Split 方法有6个重载函数: 程序代码 1) public string[] Split(params char[] separator)2) public string[] Split(char[] separator, int count)3) public string[] Split(char[] separator, StringSplitOptio

faunjoe的专栏 810

String.split() 与 StringUtils.split()的差异

举个栗子: final String str = "开,开;心,心"; final String seperator = ";,;"; //Apache工具类的split方法 final String[] result1 = StringUtils.split(str, seperator); for (final String string : result1) { ...

唐唐 848

string split方法_分享最近在String.split方法上遇到的一个小坑

最近在使用String类中的spilt方法对字符串进行分割的时候,在运行到下面取数组里面的元素的时候会出现StringIndexOutOfBoundsException对此,请大家先看下面的代码String str = "/1/2/3/4///";String[] strs = str.split("/");System.out.println("strs数组长度:" + strs.length)...

weixin_39834090的博客 410
上一篇: JAVA String Pool
下一篇: Java Pattern类 与 Matcher类
「已注销」
博客等级 码龄16年 1粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值