`
zhsq_java
  • 浏览: 61643 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

替代不需要正则表达式的String.split();

    博客分类:
  • java
阅读更多
源字符串有n个分隔符,生成的List的size就为n+1,没有内容的元素就为空串("")
	/**
	 * 分解字符串
	 * 
	 * @param source
	 * @param delimiter
	 * @return
	 */
	public static List<String> splitByStr(String source, String delimiter) {
		ArrayList<String> list = new ArrayList<String>();
		if (source == null || source.length() == 0) {
			return list;
		}
		if (delimiter == null || delimiter.length() == 0) {
			list.add(source);
			return list;
		}
		int fromIndex = 0;
		int delimiterLength = delimiter.length();

		do {
			int index = source.indexOf(delimiter, fromIndex);
			if (index == fromIndex) {
				list.add("");
			} else if (index == -1) {
				list.add(source.substring(fromIndex, source.length()));
				break;
			} else {
				list.add(source.substring(fromIndex, index));
			}
			fromIndex = index + delimiterLength;
		} while (true);

		return list;
	}
分享到:
评论

相关推荐

    Java正则表达式的总结和一些小例子

    * static Pattern compile(String regex, int flag):编译模式,参数 regex 表示输入的正则表达式,flag 表示模式类型(Pattern.CASE_INSENSITIVE 表示不区分大小写)。 * Matcher match(CharSequence input):获取...

    Java正则表达式规则(技术文档)

    正则表达式的使用非常广泛,它在文本处理和数据验证方面有着不可替代的作用。理解并掌握正则表达式的知识对于任何一个需要进行文本处理的IT专业人员来说都是非常重要的。因此,无论是在Java、JavaScript还是其他支持...

    正则表达式-基础知识

    ### 正则表达式基础知识详解 #### 一、正则表达式基础符号解析 学习正则表达式的首要步骤是熟练掌握其基本符号及其含义。以下将详细介绍正则表达式中的几种核心符号及其功能: 1. **`.`(点号)** - **作用**:...

    SQL Server中利用正则表达式替换字符串的方法

    SQL Server 2016之后的版本支持简单的正则表达式功能,例如通过字符串函数如STRING_SPLIT()和STRING_ESCAPE()等来处理简单的文本匹配和替换,但复杂或高级的正则表达式功能可能仍然需要用户自行实现。 需要强调的是...

    java正则表达式四种常用的处理方式(匹配、分割、替代、获取)

    在Java中,可以使用String类的split()方法,传入一个正则表达式来定义分割的依据。例如,在代码中使用了正则表达式(.)\\1+来定义分割依据,这将去除连续的重复字符。split()方法将返回一个字符串数组,数组的每个...

    js实战之全部替代一个子串为另一个子串.pdf

    该方法的优点是可以实现全量替换,不需要使用正则表达式,并且性能较好。 结论 本文对JS字符串替换方法进行了详细的分析和比较。不同的方法都有其优点和缺点,开发者可以根据实际情况选择合适的方法。String....

    JavaScript 正则表达式(笔记)

    String对象也提供了用于正则表达式的测试方法。match()方法返回匹配到的子串数组或null,search()方法返回匹配到的模式开始位置的索引,replace()方法用于用指定内容替换匹配到的文本,而split()方法则按照匹配模式...

    PHP学习正则表达式 课件第1/2页

    使用POSIX正则表达式函数时,需要注意的是,大括号、方括号和圆括号等特殊字符如果要作为普通字符进行匹配,需要用反斜线进行转义。 以ereg()函数为例,如果想验证一个文件名是否合法,可以使用以下代码: ```php ...

    Java编码规范总结

    修复建议:String的split方法传递的参数是正则表达式,正则表达式本身用到的字符需要转义,如:句点符号“.”,美元符号“$”,乘方符号“^”,大括号“{}”,方括号“[]”,圆括号“()” ,竖线“|”,星号“*”,...

    php中explode与split的区别介绍

    总结来说,`explode()` 适用于简单基于普通字符串的分割,而 `split()`(或 `preg_split()`)则适用于需要正则表达式进行复杂匹配的情况。在实际开发中,应根据需求选择合适的函数,同时注意正则表达式中的特殊字符...

    基于php split()函数的用法详解

    不过,如果不需要正则表达式的强大功能,使用explode()可能会更快,因为它不会调用正则表达式引擎。另外,preg_split()函数提供了与Perl兼容的正则表达式语法,通常比split()函数更高效,因此在需要使用正则表达式时...

    PHP常用函数手册大全

    `sql_regcase()`函数创建一个正则表达式,该表达式在比较时不区分大小写。这个函数在SQL查询中很有用,但已被废弃,可以使用`preg_replace_callback()`结合`strtolower()`或`strtoupper()`实现类似功能。 了解并...

    判断输入三个数字是否能组成三角形

    这个程序主要涉及了控制台程序设计、正则表达式用于数据验证、C#编程语言的运用,以及对`goto`语句的理解和应用。下面将详细阐述这些知识点。 首先,控制台程序是基于命令行界面的应用,它通过标准输入(键盘)、...

    C#操作INI文件源码_(0610).rar.rar

    5. **正则表达式**:如果需要更复杂的解析,可以使用正则表达式来匹配和提取INI文件的结构。 6. **流操作**:如果文件较大,可以使用`FileStream`结合`StreamReader`或`StreamWriter`进行流式读写,以提高性能并...

    Function eregi is deprecated (解决方法)

    在PHP编程语言中,`eregi`函数是一个用于执行不区分大小写的正则表达式匹配的函数,但在PHP 5.3版本之后,这个函数被弃用了,因为PHP社区希望统一正则表达式规范,推荐使用更为强大且兼容性更好的`preg_match`函数,...

    Java中关于处理字符的方法集合.doc

    这种方法虽然简单,但在Java 1.5之后,通常推荐使用`String.split()`方法来替代,因为它更直观且支持正则表达式。 接着是`checkStrIncludeStr`方法,这个方法用于判断一个字符串`S`是否包含另一个字符串`S2`。这里...

    分割字符串

    这时可以使用正则表达式(`regex`)来实现更加灵活的字符串匹配与分割。例如,可以将`str.split(",")`替换为`str.split("\\s*,\\s*")`来允许逗号前后存在空白字符。 ##### 3.3 异常处理 在实际开发中,还需要考虑到...

    扩展JavaScript功能的正确方法(译文)

    然后,利用正则表达式/^[0-9a-fA-F]+$/来验证字符串中的字符是否全部为合法的16进制数。这个方法可以被广泛应用于需要验证颜色值的Web设计场景。 最后,String.reverse()方法用来反转字符串中的字符顺序。它通过...

Global site tag (gtag.js) - Google Analytics