这篇博客介绍了如何在Android中使用正则表达式分割字符串时保留规则中的特殊字符。作者通过研究并修改split方法的源码,实现了一个功能,确保分割过程中字符不被去除,分享了具体的操作步骤和结果。
摘要由CSDN通过智能技术生成
正常情况下 string.split方法分割出来的字符串会把正则中包含的特殊字符去掉,为了达到保留字符的需求,翻了一下split源码,copy出来稍作改动,此处记录一下。
//示例字符串
String string = "Long long ago there.was a prin,cess in a castle \"which was on, the edge of the cliff. The princess was\"dreaming of marrying a handsome prince...";
//正则表达式,以空格 英文逗号、句号、引号为例
String regex = "(\\d|\\ |\\.|\\,|\\?|\\!|\\\")";
//调用方式
for (String string2 : split(string, regex)) {
L.e(string2);
public String[] split(CharSequence input,String regex) {
int index = 0;
ArrayList<String> matchList = new ArrayList<>();
String string = input.toString();
Pattern pattern = Pattern.compile(regex);
Matcher m = pattern.matcher(string);
//这里是targetSdkVersion>28时的处理方法,其他情况查看Pattern源码
while (m.find()) {
String match = input.subSequence(index, m.start() + 1).toString();
matchList.add(match);
正常情况下 string.split方法分割出来的字符串会把正则中包含的特殊字符去掉,为了达到保留字符的需求,翻了一下split源码,copy出来稍作改动,此处记录一下。 //示例字符串 String string = "Long long ago there.was a prin,cess in a castle \"which was on, the edge of the clif...
得的数据与所需输出的数据不同是就需要处理一下。这里采用的是string[] Regex.Split(string input,string pattern)语法,在由正则表达式模式项定义的位置将输入字符串拆分为一个字符串数组。
这里先将数据并排,(题型:单选题难度:一般使用单位:重庆高教..
String result =
“内地综艺,剧情,动作,动漫电影,台湾,喜剧,国产,国产动漫,微电影,恐怖,战争,日本,日韩动漫,日韩综艺,欧美,欧美动漫,欧美综艺,泰国,海外,海外动漫,港台动漫,港台综艺,爱情,电影解说,科幻,纪录,综艺,解说,韩国,香港”;
其中拆分为数组的部分(这里没写全,类和适配器写完后,会重新列出来)
String[] str=
public static void main(String[] args) {
String a = "a, b,c.d,e ";
String[]
split = a.
split("[( )(,)(\\. )]");
该方法以正则表达式的满足情况为前提,将一个字符串拆分为多个子字符串
String str = "name=小明&age=18&address=地球";//一个字符串
//将字符串name=小明&age=18&address=地球 进行拆分
String[] StrArray = str.split("&");//分割出来的字符数组
String[] Str1
1.不同环境下的区分
Java:
分割字符串不能写
成split(“$”)//$为要
分割的
字符
Android:
分割字符串需要加上
中括号
split(“[$]”)//$为要
分割的
字符
2.特殊用法–当
split()
分割字符串遇上特殊符号
String str = abc|dfg;
String[] all=str.
split(|);
system.out.println(all[0]);
结果为 a
| 在
正则表达式
中是个已经被使用的特殊符号(”.”、”|”、”^”等
字符)
所以想要使用 | ,必须用 \ 来进行转义,而在java
字符串中,\
一.java.lang.String提供的split
在字符串分隔时,我们有时需要指定忽略或者不忽略某些分隔符,例如:
String string=":ab:cd:ef::";
①末尾分隔符全部忽略
System.out.println(string.split(":").length);输出为4
String s[]={,ab,cd,ef};
②不忽略任何一个分隔符
System
split(String regex) 根据给定正则表达式的匹配拆分此字符串。
而"."在正则表达式中属于预定义字符类 表示任何字符(与行结束符可能匹配也可能不匹配)
转自http://www.cnblogs.com/leaven/archive/2012/06/13/2548159.html
首先从编辑框中把字符串取出来,赋值给一个字符串变量。在用split方法把取得的字符串转换成数组。
String str = et_1.getText().toString;//取出字符串
String[ ] str_Array = str.split(","
可以使用 JavaScript 中的 `split()` 方法将一个字符串分割成数组。该方法接受一个分隔符作为参数,将字符串按照该分隔符进行分割,并返回一个数组。
例如,将一个以逗号分隔的字符串分割成数组:
```javascript
let str = "apple,banana,orange";
let arr = str.split(",");
console.log(arr); // ["apple", "banana", "orange"]
如果分割符为空字符串,则会将字符串中的每个字符都分割成一个数组元素:
```javascript
let str = "hello";
let arr = str.split("");
console.log(arr); // ["h", "e", "l", "l", "o"]
除了单个字符作为分隔符外,`split()` 方法也支持正则表达式作为分隔符。例如,将一个以空格或逗号分隔的字符串分割成数组:
```javascript
let str = "apple, banana orange";
let arr = str.split(/,|\s+/); // 使用正则表达式匹配逗号或一个或多个空格作为分隔符
console.log(arr); // ["apple", "banana", "orange"]