在 J2ME(Java 2 Platform Micro Edition)项目中添加 REGEX(正则表达式)匹配,我们需要遵循以下几个步骤:
KDT
,用于编译和运行 J2ME 项目。如果没有安装,请访问相关官方网站获取。javax.microedition.lcdui
包的 EditField
类中创建 Pattern
和/或 Matcher
对象以实现所需功能。例如,编写一个简单的 EditField
类,它会根据输入字符串中的逗号和空格自动对它们进行分片,并通过调用正则表达式模式来匹配字符串:
import javax.microedition.lcdui.Editor;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.TextField;
import net.iharder.RegexBuddy;
import net.iharder.RegexTester;
import java.util.*;
public class SimpleMatchExample extends List
{
public SimpleMatchExample()
{
TextField[] fields = new TextField[2];
fields[0] = // ... initializing the first TextField
fields[1] = new TextField(5); // ... initializing the second TextField
// 设定输入和自动处理逗号空格分片的规则
FieldEditorSupport support = new FieldEditorSupport.ListEditor(fields)
{
// 根据输入的逗号和空格自动分片的实现
public void checkValue(Field source, String newValue)
{
// 检查是否包含两个以逗号分隔的字符串,并在它们之间添加分片分隔符
String[] tokens = newValue.split(",");
StringBuilder result = new StringBuilder("[");
boolean first = true;
for (String s : tokens)
{
if (!first)
result.append(',');
result.append(s);
first = false;
}
result.append("]");
super.checkValue(source, result.toString());
}
};
add("Replace commas and spaces: ", support);// add() 方法将 J2ME 控制器添加到 J2ME 界面中
// 添加正则表达式匹配模式
support.setPattern(Pattern.compile(",", "g"));
// 添加正则表达式匹配结果处理监听器(可根据需要添加)
support.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// 从 EditField 获取新的输入字符串
String input = ((TextField) e.getSource()).getText();
int commaPos = input.indexOf(",");
int spacePos = input.indexOf(" ");
if (commaPos != -1) // 当输入包含逗号
{
// 从逗号后面提取新的 token
String token = input.substring(commaPos + 1);
// 将 new token 附加到原始输入字符串
input = input.substring(0, commaPos);
((TextField) e.getSource()).setText(input + token);
Pattern compile = support.getPattern();
Matcher matcher = compile.matcher(input);
// 处理匹配结果
if (matcher.find())
{
领取专属 10元无门槛券
手把手带您无忧上云