java字符串切分_Java字符串分割(转)

java.lang.String的split()方法, JDK 1.4 or later

public String[] split(String regex,int limit)

示例代码

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class StringSplit {

public static void main(String[] args) {

String sourceStr = "1,2,3,4,5";

String[] sourceStrArray = sourceStr.split(",");

for (int i = 0; i < sourceStrArray.length; i++) {

System.out.println(sourceStrArray[i]);

}

// 最多分割出3个字符串

int maxSplit = 3;

sourceStrArray = sourceStr.split(",", maxSplit);

for (int i = 0; i < sourceStrArray.length; i++) {

System.out.println(sourceStrArray[i]);

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

输出结果:

48304ba5e6f9fe08f3fa1abda7d326ab.png

1

2

3

4

5

1

2

3,4,5

48304ba5e6f9fe08f3fa1abda7d326ab.png

split 的实现直接调用的 matcher 类的 split 的方法。在使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。在正则表达式中有特殊的含义的字符,我们使用的时候必须进行转义,示例:

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class StringSplit {

public static void main(String[] args) {

String value = "192.168.128.33";

// 注意要加\\,要不出不来,yeah

String[] names = value.split("\\.");

for (int i = 0; i < names.length; i++) {

System.out.println(names[i]);

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

split分隔符总结

1.字符"|","*","+"都得加上转义字符,前面加上"\\"。

2.而如果是"\",那么就得写成"\\\\"。

3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。

比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。

java.util.Tokenizer JDK 1.0 or later

StringTokenizer

StringTokenizer 类允许应用程序将字符串分解为标记。StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。

代码示例

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class StringSplit {

public static void main(String[] args) {

String ip = "192.168.128.33";

StringTokenizer token=new StringTokenizer(ip,".");

while(token.hasMoreElements()){

System.out.print(token.nextToken()+" ");

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

但是StringTokenizer对于字符串"192.168..33"的分割,返回的字符串数组只有3个元素,对于两个分隔符之间的空字符串会忽略,这个要慎重使用。

但是String.split(String.split是用正则表达式匹配,所以不使用KMP字符串匹配算法)用的都是按顺序遍历的算法,时间复杂度O(m*n),较高,所以性能上,StringTokenizer好很多,对于频繁使用字符串分割的应用,例如etl数据处理,使用StringTokenizer性能可以提高很多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试官:. NET5源码里用到了哪些设计模式?懵!

作为微软最早迈向开源的重要软件之一&#xff0c;.NET 5的发布具有重要意义&#xff01;微软希望 .NET Framework 开发者能够迁移他们的代码和应用到 .NET 5.0 上&#xff0c;为明年发布的 .NET 6.0 将 Xamarin 开发者过渡到统一平台奠定基础。版本发布时间轴&#xff1a;.NET …

C# 中 ConcurrentDictionary 一定线程安全吗?

根据 .NET 官方文档的定义&#xff1a;ConcurrentDictionary<TKey,TValue> Class 表示可由多个线程同时访问的线程安全的键/值对集合。这也是我们在并发任务中比较常用的一个类型&#xff0c;但它真的是绝对线程安全的吗&#xff1f;仔细阅读官方文档&#xff0c;我们会发…

2020 .NET 开发者峰会顺利在苏州落幕,相关数据很喜人以及线上直播回看汇总

在2019年上海中国.NET开发者大会的基础上&#xff0c;2020年12月19-20日 继续以“开源、共享、创新” 为主题的第二届中国 .NET 开发者峰会&#xff08;.NET Conf China 2020&#xff09;在苏州人工智能智能产业创新中心落下帷幕&#xff0c;本次大会以线下城市苏州为中心&…

.NET 云原生架构师训练营(模块二 基础巩固 REST RESTful)--学习笔记

2.3.1 Web API -- REST && RESTful什么是 REST&#xff0c;什么是 RESTfulRESTful API 设计RESTful 成熟度模型什么是 REST&#xff0c;什么是 RESTful理解RESTful架构&#xff1a;https://www.ruanyifeng.com/blog/2011/09/restful.htmlREST&#xff08;Representatio…

vue 一个组件内多个弹窗_论如何用Vue实现一个弹窗-一个简单的组件实现

前言最近在使用element-ui框架&#xff0c;用到了Dialog对话框组件&#xff0c;大致实现的效果&#xff0c;跟我之前自己在移动端项目里面弄的一个弹窗组件差不太多。然后就想着把这种弹窗组件的实现方式与大家分享一下&#xff0c;下面本文会带着大家手摸手实现一个弹窗组件。…

为 CefSharp 应用内置 C++ 运行环境并启用 AnyCPU 支持

一个 CefSharp 应用程序要想正确运行&#xff0c;有两个必要条件&#xff1a;.NET Framework 4.5.2VC 2015在部署 CefSharp 应用时经常会遇到因为没有 VC 2015 而无法运行的问题&#xff1a;通过事件查看器&#xff0c;可以观察到一个类型为&#xff1a;System.IO.FileNotFound…

java file rename 失败_java重命名文件造成文件不可读写

我想使用java代码对nginx日志文件进行拆分&#xff0c;但是我发现代码执行之后&#xff0c;拆分出来的日志文件没有读写权限&#xff0c;查看文件属性&#xff0c;显示的很诡异&#xff1a;点击高级按钮&#xff0c;显示你没有权限查看或者编辑这个对象的权限设置&#xff1a;反…

java opencsv_用opencsv文件读写CSV文件

首先明白csv文件长啥样儿&#xff1a;用excel打开就变成表格了&#xff0c;看不到细节推荐用其它简单粗暴一点儿的编辑器&#xff0c;比如Notepad&#xff0c;csv文件内容如下&#xff1a;csv文件默认用逗号分隔各列。有了基础的了解就进入主题&#xff0c;用Opencsv读写csv文件…

Beetlex之tcp/tls服务压测工具

在编写tcp服务的时候经常需要对服务的基础性能进行一个压力测试&#xff0c;虽然网上这些工具有很多&#xff0c;但具备使用方便和高强度的测试工具则不多。为了方便这方面的高强度压测所以在beetlex的基础扩展这样一个工具。安装可以访问https://github.com/beetlex-io/TCPBen…

GraphQL:DataLoader的神奇

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述&#xff0c;使得客户端能够准确地获得它需要的数据&#xff0c;而且没有任何冗余&#xff0c;也让 API 更容易地随着时间推移而演进&#xff0c…

【Azure Show】|第九期 “我的计算机入门之路” 嘉宾秦婷婷汪宇杰文轩

欢迎来到Azure Show!Azure Show欢迎来到Azure Show 第九期&#xff01;继上期【搭上AI快车】为大家带来数位微软技术专家于各自IT技术领域的经验分享&#xff0c;有2400多人在线上通过b站看了这个特辑的直播&#xff0c;非常非常感恩&#xff01;本期继续和广州图书馆合作&…

调试实战 | 通过转储文件分析程序无响应之使用 windbg + IDA 逆向篇

缘起 最近&#xff0c;接连在项目中遇到了两个界面无响应的问题。都只发生在客户特定机器上&#xff0c;不方便直接调试&#xff0c;只能抓取 dump 进行事后分析了。抓取 dump 远程连上可以重现问题的机器&#xff0c;使用 process explorer 初步观察卡死的进程&#xff0c;发现…

跟我一起学Redis之高可用从主从复制开始

前言现在遇到高并发场景时&#xff0c;缓存技术应该算是性能优化的第一步&#xff0c;缓解数据库压力的同时还能提高访问效率&#xff0c;而Redis应该是绝大多数应用场景的首选。但是尽快Redis性能再优秀&#xff0c;在当今高并发场景下&#xff0c;一台服务器负责读写&#xf…

【.Net core】EFCore——Code First生成数据库与表

Code First——领域设计模式中非常有用。使用 Code First 模式&#xff0c;专注于领域设计&#xff0c;创建领域类&#xff0c;然后生成数据库。1.创建数据模型类一般就是数据库里面有哪些表&#xff0c;就创建哪些模型&#xff0c; POCO 类就够了。public partial class SmsPu…

龙芯.NET正式发布 开源共享与开发者共成长

2020年12月19日&#xff0c;2020中国. NET开发者大会于苏州盛大开幕。本次大会以“开源、共享、创新”为主题&#xff0c;以线下城市苏州为中心&#xff0c;覆盖北京、上海、深圳、广州、长沙、成都、厦门、胶东等地区&#xff0c;是中国 .NET 开发者的大聚会&#xff0c;线上线…

划入 .NET 6版本目标,微软鼓励开发人员信任第三方库

喜欢就关注我们吧&#xff01;鉴于许多 .NET 社区的开发人员都不愿意使用非微软官方打造的库&#xff0c;近日&#xff0c;微软 .NET Framework 团队的项目经理 Immo Landwerth 发布了一个名为”Growing the .NET ecosystem“的文档&#xff0c;以鼓励 .NET 开发人员加强对第三…

归并排序 java 迭代_经典排序算法之归并排序(示例代码)

归并排序(英语&#xff1a;Merge sort&#xff0c;或mergesort)&#xff0c;是创建在归并操作上的一种有效的排序算法&#xff0c;效率为(大O符号)。1945年由约翰冯诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用&#xff0c;且各层分治递归可以…

新鲜高频笔面试题分享,Redis、MongoDB、ElasticSearch...

2020年可能是最短的一年&#xff0c;上班没几个月就发现要元旦了&#xff1b;2020年可能是最难的一年&#xff0c;各种降薪被离职风波&#xff1b;然而好消息是&#xff0c;2021年马上来了&#xff0c;跳槽季也要来了&#xff0c;一起开始备战吧&#xff0c;新年薪资up up&…

在 Windows 服务中托管 ASP.NET Core

概述众所周知&#xff0c;ASP.NET Core采用了和传统ASP.NET不同的托管和HTTP处理方式&#xff0c;即把服务器和托管环境完全解耦。ASP.NET Core内置了两个HTTP服务器实现&#xff0c;一个是基于libuv实现的Kestrel&#xff08;支持跨平台&#xff09;&#xff0c;一个是基于Win…

目录 | 数据结构与剑指Offer系列推文合集

【目录合集】| 作者 / Edison ZhouC#刷数据结构剑指Offer不知不觉&#xff0c;C#刷剑指Offer的系列推文就结束了&#xff0c;今天就把它们整理成目录合集。此外&#xff0c;考虑到剑指Offer和数据结构的关联&#xff0c;建议没有数据结构基础的童鞋先看看数据结构&#xff0c;再…