针对这个问题,我将分成两个部分进行回答。
第一部分:Java正则表达式实现提取需要的字符并放入数组
基本概念
正则表达式是用于描述字符串模式的一个表达式。可以根据正则表达式来匹配、查找、替换符合特定模式的文本。在 Java 中,正则表达式需要使用java.util.regex
包中的类来实现。
正则表达式语法
下面是常用的正则表达式语法:
. 匹配任何一个字符,除了换行符
* 匹配前面的字符零次或者多次
? 匹配前面的字符零次或者一次
+ 匹配前面的字符一次或者多次
| 或者
() 括号内的字符为一个整体
^ 匹配开头字符
$ 匹配结尾字符
\d 只匹配数字,相当于[0-9]
\D 匹配非数字字符,相当于[^0-9]
\w 匹配任意单个字符和数字,相当于[a-zA-Z0-9_]
\W 匹配任意单个非字符和数字,相当于[^a-zA-Z0-9_]
\s 匹配任意空白符,如空格、换行、制表符等
\S 匹配任意非空白符
[] 方括号内所有字符都只匹配一次
[^] 方括号内的字符都不匹配
正则表达式实现提取需要的字符
下面是一个示例,演示如何使用正则表达式来从一个字符串中提取需要的字符,并将其放入数组:
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String input = "a1b2c3d4e5f6";
Pattern pattern = Pattern.compile("\\d");
Matcher matcher = pattern.matcher(input);
String[] output = matcher.replaceAll(",").split(",");
System.out.println(Arrays.toString(output));
}
}
输出为:[1, 2, 3, 4, 5, 6]
。
第1行定义了一个字符串变量input
,其中包含了一些数字。
第2行定义了一个Pattern
对象,通过调用静态方法compile()
创建。这个Pattern
表示了一个匹配数字的正则表达式。
第3行定义了一个Matcher
对象,通过调用matcher()
方法传入字符串变量来创建。这个Matcher
用来匹配input
中的字符串。
第4行调用replaceAll()
方法,将匹配到的数字替换成了逗号。这里的逗号是为了后面方便使用split()
方法把数字拆分成数组。
第5行调用split()
方法,将字符串按照逗号拆分成一个数组。最终输出了一个包含了所有数字的字符串数组。
需要注意的是,这里的正则表达式中使用了\\d
来匹配数字,因为\d
是Java字符字面值,而Java中\
也是一个特殊字符,需要使用双重转义符号\\
来表示\
字符本身。
第二部分:ArrayList数组去重复功能
基本概念
ArrayList
是Java中的一个类,用于实现可伸缩、可变长的数组。它存在于java.util
包中。
ArrayList数组去重复功能
下面是一个示例,演示如何通过调用ArrayList
的add()
方法实现对数组去重:
import java.util.ArrayList;
import java.util.Arrays;
public class ArrayListExample {
public static void main(String[] args) {
String[] input = {"a", "b", "a", "c", "d", "c", "e"};
ArrayList<String> output = new ArrayList<>();
for (String s : input) {
if (!output.contains(s)) {
output.add(s);
}
}
System.out.println(Arrays.toString(output.toArray(new String[0])));
}
}
输出为:[a, b, c, d, e]
。
第1行定义了一个字符串数组input
,里面包含了一些字符串,包括重复的。
第2行定义了一个ArrayList
对象output
,表示输出的不含重复的字符串的数组。
第3-6行使用了一个for-each循环,遍历了所有的输入字符串。
第4行使用contains()
方法来判断现有的数组中是否已经包含了这个字符串。如果没有,就将其添加进去。
需要注意的是,这里的add()
方法只是在末尾添加了新的元素,如果需要使用其他的插入方式可以调用add(int index, E e)
方法。
第7行输出了最终的去重复数组内容。
通过以上方法,就可以很简单地实现对数组去重复的操作了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】 - Python技术站