Gwt Client截取字符串中的汉字_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Gwt Client截取字符串中的汉字

Gwt Client截取字符串中的汉字

 2011/11/2 8:10:32  bean-woo  http://smartgwt.iteye.com  我要评论(0)
  • 摘要:packagecom.appdev.bsf.common.client.util;/***@authorwubinE-mail:wubin3347@gmail.com*@version创建时间:2011-11-1下午3:12:45**/publicinterfaceMatchResult{intstart();intend();}packagecom.appdev.bsf.common.client.util;/***@authorwubinE-mail:wubin3347@gmail
  • 标签:client 字符串

package com.appdev.bsf.common.client.util;

/**
?* @author wubin E-mail:wubin3347@gmail.com
?* @version 创建时间:2011-11-1 下午3:12:45
?*
?*/
public interface MatchResult {
??? int start();

??? int end();
}

?

?

package com.appdev.bsf.common.client.util;

/**
?* @author wubin E-mail:wubin3347@gmail.com
?* @version 创建时间:2011-11-1 下午3:12:13
?*
?*/

public class Matcher implements MatchResult {

??? private Pattern pat = null;

??? private String expression = null;

??? Matcher(Pattern pat, CharSequence cs) {
??? ??? this.pat = pat;
??? ??? this.expression = cs.toString();
??? }

??? public boolean find() {
??? ??? return pat.matches(expression);
??? }

??? public int start() {
??? ??? String[] s = pat.match(expression);
??? ??? int start = -1;
??? ??? for (String ss : s)
??? ??? ??? start = expression.indexOf(ss);
??? ??? return start;
??? }

??? public int end() {
??? ??? String[] s = pat.match(expression);
??? ??? int end = -1;
??? ??? for (String ss : s)
??? ??? ??? end = expression.indexOf(ss) + ss.length();
??? ??? return end;
??? }

}

?

?

?

package com.appdev.bsf.common.client.util;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.core.client.JavaScriptObject;

/**
?* @author wubin E-mail:wubin3347@gmail.com
?* @version 创建时间:2011-11-1 下午3:12:45
?*
?*/
public class Pattern {

??? public final static int MULTILINE = 1;

??? public final static int CASE_INSENSITIVE = 2;

??? private static native JavaScriptObject _createExpression(String pattern, String flags)
??? /*-{
??? ??? return new RegExp(pattern, flags);
??? }-*/;

??? public static Pattern compile(String pattern) {
??? ??? return new Pattern(pattern);
??? }

??? public static Pattern compile(String pattern, int flags) {
??? ??? return new Pattern(pattern, flags);
??? }

??? private static JavaScriptObject createExpression(String pattern, int flags) {
??? ??? String sFlags = "";
??? ??? if ((flags & MULTILINE) != 0)
??? ??? ??? sFlags += "m";
??? ??? if ((flags & CASE_INSENSITIVE) != 0)
??? ??? ??? sFlags += "i";
??? ??? return _createExpression(pattern, sFlags);
??? }

??? public static boolean matches(String regex, String input) {
??? ??? return new Pattern(regex).matches(input);
??? }

??? public static String quote(String input) {
??? ??? String output = "";
??? ??? for (int i = 0; i < input.length(); i++) {
??? ??? ??? output += "\\" + input.charAt(i);
??? ??? }
??? ??? return output;
??? }

??? private JavaScriptObject regExp;

??? public Pattern(String pattern) {
??? ??? this(pattern, 0);
??? }

??? public Pattern(String pattern, int flags) {
??? ??? regExp = createExpression(pattern, flags);
??? }

??? public Matcher matcher(CharSequence cs) {
??? ??? return new Matcher(this, cs);
??? }

??? private native void _match(String text, List<String> matches, JavaScriptObject regExp)
??? /*-{
??? ??? var result = text.match(regExp);
??? ??? if (result == null)
??? ??? ??? return;
??? ??? for ( var i = 0; i < result.length; i++)
??? ??? ??? matches.@java.util.ArrayList::add(Ljava/lang/Object;)(result[i]);
??? }-*/;

??? private native void _split(String input, List<String> results, JavaScriptObject regExp)
??? /*-{
??? ??? var parts = input.split(regExp);
??? ??? for ( var i = 0; i < parts.length; i++)
??? ??? ??? results.@java.util.ArrayList::add(Ljava/lang/Object;)(parts[i] );
??? }-*/;

??? public String[] match(String text) {
??? ??? List<String> matches = new ArrayList<String>();
??? ??? _match(text, matches, regExp);
??? ??? String arr[] = new String[matches.size()];
??? ??? for (int i = 0; i < matches.size(); i++)
??? ??? ??? arr[i] = matches.get(i).toString();
??? ??? return arr;
??? }

??? public boolean matches(String text) {
??? ??? return _matches(text, regExp);
??? }

??? private native boolean _matches(String text, JavaScriptObject regExp)
??? /*-{
??? ??? return regExp.test(text);
??? }-*/;

??? public String pattern() {
??? ??? return _pattern(regExp);
??? }

??? private native String _pattern(JavaScriptObject regExp)
??? /*-{
??? ??? return regExp.source;
??? }-*/;

??? public String[] split(String input) {
??? ??? List<String> results = new ArrayList<String>();
??? ??? _split(input, results, regExp);
??? ??? String[] parts = new String[results.size()];
??? ??? for (int i = 0; i < results.size(); i++)
??? ??? ??? parts[i] = (String) results.get(i);
??? ??? return parts;
??? }

??? public String toString() {
??? ??? return regExp.toString();
??? }
}

发表评论
用户名: 匿名