0

ブラックベリーOS6.0で簡単なパターンマッチングを行う方法。目的は、UserName編集フィールドに入力されたユーザー名に特殊文字が含まれているかどうかを確認することです
。plzはjibysthomasに感謝します

4

1 に答える 1

1

より良い解決策は、編集フィールドに適切な TextFilter を追加してユーザー入力を制御することです。これには、オンスクリーン キーボードを変更して、装備されているデバイスのフィルターに一致させるという追加の利点があります。

以下は、2 つの組み込みテキスト フィルターのアクションを組み合わせて、大文字と数字のみを許可するフィルターを作成する例です。

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;
 }
}
于 2012-05-24T14:54:46.923 に答える