Blackberry中的字符串模式匹配

时间:2012-05-24 11:50:58

标签: blackberry

如何在黑莓OS 6.0中进行简单的模式匹配。目的是检查输入到UserName编辑字段的用户名是否包含特殊字符.... plz帮助我 谢谢jibysthomas

1 个答案:

答案 0 :(得分:1)

更好的解决方案是通过在编辑字段中添加适当的TextFilter来控制用户输入。这样做的另一个好处是可以修改屏幕键盘以匹配那些配备的设备上的过滤器。

这是一个结合两个内置文本过滤器的动作的示例,使其只允许使用大写字母和数字:

import net.rim.device.api.ui.text.TextFilter;
import net.rim.device.api.system.Characters;

/**
* A TextFilter class to filter for station identifiers
*/
private static class StationFilter extends TextFilter {

 // Order of the supporting filters is important, NUMERIC will convert
 // letters to numbers if it gets them first.
 private static TextFilter[]      _tf = {
  TextFilter.get(TextFilter.NUMERIC),
  TextFilter.get(TextFilter.UPPERCASE)
 };

// Convert using the first supporting filter that has a conversion
 public char convert( char character, int status) {
  char c = 0;

  for (int i = _tf.length - 1; i >= 0; i--) {
   c = _tf[i].convert(character, status);
   if (c != 0) {
    return c;
   }
  }

  return 0;
 }

// Validate a space for separator, then by supporting filter
 public boolean validate(char character) {
  if (character == Characters.SPACE) {
   return true;
  }

  for (int i = _tf.length - 1; i >= 0; i--) {
   boolean b = _tf[i].validate(character);
   if (b) {
    return true;
   }
  }

  return false;
 }
}